浏览代码

Conditionals and comments for PS = 0

Scott Lahteine 10 年前
父节点
当前提交
8c136a5ab5
共有 2 个文件被更改,包括 41 次插入36 次删除
  1. 38
    35
      Marlin/Marlin_main.cpp
  2. 3
    1
      Marlin/ultralcd.cpp

+ 38
- 35
Marlin/Marlin_main.cpp 查看文件

272
 
272
 
273
 #endif // FWRETRACT
273
 #endif // FWRETRACT
274
 
274
 
275
-#ifdef ULTIPANEL
275
+#if defined(ULTIPANEL) && HAS_POWER_SWITCH
276
   bool powersupply = 
276
   bool powersupply = 
277
     #ifdef PS_DEFAULT_OFF
277
     #ifdef PS_DEFAULT_OFF
278
       false
278
       false
517
     OUT_WRITE(SUICIDE_PIN, HIGH);
517
     OUT_WRITE(SUICIDE_PIN, HIGH);
518
   #endif
518
   #endif
519
   #if HAS_POWER_SWITCH
519
   #if HAS_POWER_SWITCH
520
-    #if defined(PS_DEFAULT_OFF)
520
+    #ifdef PS_DEFAULT_OFF
521
       OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP);
521
       OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP);
522
     #else
522
     #else
523
       OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE);
523
       OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE);
3313
     #endif
3313
     #endif
3314
   }
3314
   }
3315
 
3315
 
3316
-  /**
3317
-   * M81: Turn off Power Supply
3318
-   */
3319
-  inline void gcode_M81() {
3320
-    disable_heater();
3316
+#endif // HAS_POWER_SWITCH
3317
+
3318
+/**
3319
+ * M81: Turn off Power, including Power Supply, if there is one.
3320
+ *
3321
+ *      This code should ALWAYS be available for EMERGENCY SHUTDOWN!
3322
+ */
3323
+inline void gcode_M81() {
3324
+  disable_heater();
3325
+  st_synchronize();
3326
+  disable_e0();
3327
+  disable_e1();
3328
+  disable_e2();
3329
+  disable_e3();
3330
+  finishAndDisableSteppers();
3331
+  fanSpeed = 0;
3332
+  delay(1000); // Wait 1 second before switching off
3333
+  #if defined(SUICIDE_PIN) && SUICIDE_PIN > -1
3321
     st_synchronize();
3334
     st_synchronize();
3322
-    disable_e0();
3323
-    disable_e1();
3324
-    disable_e2();
3325
-    disable_e3();
3326
-    finishAndDisableSteppers();
3327
-    fanSpeed = 0;
3328
-    delay(1000); // Wait 1 second before switching off
3329
-    #if defined(SUICIDE_PIN) && SUICIDE_PIN > -1
3330
-      st_synchronize();
3331
-      suicide();
3332
-    #elif HAS_POWER_SWITCH
3333
-      OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP);
3334
-    #endif
3335
-    #ifdef ULTIPANEL
3335
+    suicide();
3336
+  #elif HAS_POWER_SWITCH
3337
+    OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP);
3338
+  #endif
3339
+  #ifdef ULTIPANEL
3340
+    #if HAS_POWER_SWITCH
3336
       powersupply = false;
3341
       powersupply = false;
3337
-      LCD_MESSAGEPGM(MACHINE_NAME " " MSG_OFF ".");
3338
-      lcd_update();
3339
     #endif
3342
     #endif
3340
-  }
3343
+    LCD_MESSAGEPGM(MACHINE_NAME " " MSG_OFF ".");
3344
+    lcd_update();
3345
+  #endif
3346
+}
3341
 
3347
 
3342
-#endif // PS_ON_PIN
3343
 
3348
 
3344
 /**
3349
 /**
3345
  * M82: Set E codes absolute (default)
3350
  * M82: Set E codes absolute (default)
4874
         #endif //HEATER_2_PIN
4879
         #endif //HEATER_2_PIN
4875
       #endif //BARICUDA
4880
       #endif //BARICUDA
4876
 
4881
 
4877
-      #if defined(PS_ON_PIN) && PS_ON_PIN > -1
4882
+      #if HAS_POWER_SWITCH
4878
 
4883
 
4879
         case 80: // M80 - Turn on Power Supply
4884
         case 80: // M80 - Turn on Power Supply
4880
           gcode_M80();
4885
           gcode_M80();
4881
           break;
4886
           break;
4882
 
4887
 
4883
-      #endif // PS_ON_PIN
4888
+      #endif // HAS_POWER_SWITCH
4884
 
4889
 
4885
-      case 81: // M81 - Turn off Power Supply
4890
+      case 81: // M81 - Turn off Power, including Power Supply, if possible
4886
         gcode_M81();
4891
         gcode_M81();
4887
         break;
4892
         break;
4888
 
4893
 
5859
   disable_e2();
5864
   disable_e2();
5860
   disable_e3();
5865
   disable_e3();
5861
 
5866
 
5862
-#if defined(PS_ON_PIN) && PS_ON_PIN > -1
5863
-  pinMode(PS_ON_PIN,INPUT);
5864
-#endif
5867
+  #if HAS_POWER_SWITCH
5868
+    pinMode(PS_ON_PIN, INPUT);
5869
+  #endif
5870
+
5865
   SERIAL_ERROR_START;
5871
   SERIAL_ERROR_START;
5866
   SERIAL_ERRORLNPGM(MSG_ERR_KILLED);
5872
   SERIAL_ERRORLNPGM(MSG_ERR_KILLED);
5867
   LCD_ALERTMESSAGEPGM(MSG_KILLED);
5873
   LCD_ALERTMESSAGEPGM(MSG_KILLED);
5868
   
5874
   
5869
   // FMC small patch to update the LCD before ending
5875
   // FMC small patch to update the LCD before ending
5870
   sei();   // enable interrupts
5876
   sei();   // enable interrupts
5871
-  for ( int i=5; i--; lcd_update())
5872
-  {
5873
-     delay(200);  
5874
-  }
5877
+  for (int i = 5; i--; lcd_update()) delay(200); // Wait a short time
5875
   cli();   // disable interrupts
5878
   cli();   // disable interrupts
5876
   suicide();
5879
   suicide();
5877
   while(1) { /* Intentionally left empty */ } // Wait for reset
5880
   while(1) { /* Intentionally left empty */ } // Wait for reset

+ 3
- 1
Marlin/ultralcd.cpp 查看文件

44
 
44
 
45
 #ifdef ULTIPANEL
45
 #ifdef ULTIPANEL
46
 
46
 
47
-  extern bool powersupply;
47
+  #if HAS_POWER_SWITCH
48
+    extern bool powersupply;
49
+  #endif
48
   static float manual_feedrate[] = MANUAL_FEEDRATE;
50
   static float manual_feedrate[] = MANUAL_FEEDRATE;
49
   static void lcd_main_menu();
51
   static void lcd_main_menu();
50
   static void lcd_tune_menu();
52
   static void lcd_tune_menu();

正在加载...
取消
保存