chiark / gitweb /
Changed M401 to M0/M1 as suggested, so they match normal CNC stop commands.
authorDaid <daid303@gmail.com>
Sun, 20 May 2012 12:37:30 +0000 (14:37 +0200)
committerDaid <daid303@gmail.com>
Sun, 20 May 2012 12:37:30 +0000 (14:37 +0200)
Marlin/Marlin.pde

index 185c9f78177d9479cc979546ecc02b16ba38904d..e450f74183f004435edb831a0ab47e656f788a5c 100644 (file)
@@ -56,6 +56,8 @@
 // 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.
@@ -709,6 +710,35 @@ void process_commands()
   {
     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(); 
@@ -1266,34 +1296,6 @@ void process_commands()
       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();