// G92 - Set current position to cordinates given
//RepRap M Codes
+// M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
+// M1 - Same as M0
// M104 - Set extruder target temp
// M105 - Read current temp
// M106 - Fan on
// M302 - Allow cold extrudes
// M303 - PID relay autotune S<temperature> sets the target temperature. (default target temperature = 150C)
// M400 - Finish all moves
-// M401 - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
// M500 - stores paramters in EEPROM
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
{
switch( (int)code_value() )
{
+#ifdef ULTRA_LCD
+ case 0: // M0 - Unconditional stop - Wait for user button press on LCD
+ case 1: // M1 - Conditional stop - Wait for user button press on LCD
+ {
+ LCD_MESSAGEPGM(MSG_USERWAIT);
+ codenum = 0;
+ if(code_seen('P')) codenum = code_value(); // milliseconds to wait
+ if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait
+
+ st_synchronize();
+ previous_millis_cmd = millis();
+ if (codenum > 0)
+ {
+ codenum += millis(); // keep track of when we started waiting
+ while(millis() < codenum && !CLICKED){
+ manage_heater();
+ manage_inactivity(1);
+ LCD_STATUS;
+ }
+ }else{
+ while(!CLICKED) {
+ manage_heater();
+ manage_inactivity(1);
+ LCD_STATUS;
+ }
+ }
+ }
+ break;
+#endif
case 17:
LCD_MESSAGEPGM(MSG_NO_MOVE);
enable_x();
st_synchronize();
}
break;
-#ifdef ULTRA_LCD
- case 401: // M401 - Wait for user button press on LCD
- {
- LCD_MESSAGEPGM(MSG_USERWAIT);
- codenum = 0;
- if(code_seen('P')) codenum = code_value(); // milliseconds to wait
- if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait
-
- st_synchronize();
- previous_millis_cmd = millis();
- if (codenum > 0)
- {
- codenum += millis(); // keep track of when we started waiting
- while(millis() < codenum && !CLICKED){
- manage_heater();
- manage_inactivity(1);
- LCD_STATUS;
- }
- }else{
- while(!CLICKED) {
- manage_heater();
- manage_inactivity(1);
- LCD_STATUS;
- }
- }
- }
- break;
-#endif
case 500: // Store settings in EEPROM
{
EEPROM_StoreSettings();