Browse Source

Shift call of start_watching_heater() into setTargetHotend()

to warrant watching is set or reset.

Make setTargetBed() in _lcd_preheat() dependant of TEMP_SENSOR_BED.
Use disable_all_heaters() in lcd_cooldown() and abort_on_endstop_hit.
AnHardt 10 years ago
parent
commit
bc0764894a
3 changed files with 11 additions and 15 deletions
  1. 1
    5
      Marlin/stepper.cpp
  2. 6
    1
      Marlin/temperature.h
  3. 4
    9
      Marlin/ultralcd.cpp

+ 1
- 5
Marlin/stepper.cpp View File

@@ -296,11 +296,7 @@ void checkHitEndstops() {
296 296
         card.sdprinting = false;
297 297
         card.closefile();
298 298
         quickStop();
299
-        setTargetHotend0(0);
300
-        setTargetHotend1(0);
301
-        setTargetHotend2(0);
302
-        setTargetHotend3(0);
303
-        setTargetBed(0);
299
+        disable_all_heaters(); // switch off all heaters.
304 300
       }
305 301
     #endif
306 302
   }

+ 6
- 1
Marlin/temperature.h View File

@@ -96,7 +96,12 @@ FORCE_INLINE float degBed() { return current_temperature_bed; }
96 96
 FORCE_INLINE float degTargetHotend(uint8_t extruder) { return target_temperature[extruder]; }
97 97
 FORCE_INLINE float degTargetBed() { return target_temperature_bed; }
98 98
 
99
-FORCE_INLINE void setTargetHotend(const float &celsius, uint8_t extruder) { target_temperature[extruder] = celsius; }
99
+FORCE_INLINE void setTargetHotend(const float &celsius, uint8_t extruder) {
100
+  target_temperature[extruder] = celsius;
101
+  #ifdef WATCH_TEMP_PERIOD
102
+    start_watching_heater(extruder);
103
+  #endif
104
+}
100 105
 FORCE_INLINE void setTargetBed(const float &celsius) { target_temperature_bed = celsius; }
101 106
 
102 107
 FORCE_INLINE bool isHeatingHotend(uint8_t extruder) { return target_temperature[extruder] > current_temperature[extruder]; }

+ 4
- 9
Marlin/ultralcd.cpp View File

@@ -515,12 +515,11 @@ static void lcd_tune_menu() {
515 515
 
516 516
 void _lcd_preheat(int endnum, const float temph, const float tempb, const int fan) {
517 517
   if (temph > 0) setTargetHotend(temph, endnum);
518
-  setTargetBed(tempb);
518
+  #if TEMP_SENSOR_BED != 0
519
+    setTargetBed(tempb);
520
+  #endif
519 521
   fanSpeed = fan;
520 522
   lcd_return_to_status();
521
-  #ifdef WATCH_TEMP_PERIOD
522
-    if (endnum >= 0) start_watching_heater(endnum);
523
-  #endif
524 523
 }
525 524
 void lcd_preheat_pla0() { _lcd_preheat(0, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }
526 525
 void lcd_preheat_abs0() { _lcd_preheat(0, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); }
@@ -602,11 +601,7 @@ void lcd_preheat_abs0() { _lcd_preheat(0, absPreheatHotendTemp, absPreheatHPBTem
602 601
 #endif // more than one temperature sensor present
603 602
 
604 603
 void lcd_cooldown() {
605
-  setTargetHotend0(0);
606
-  setTargetHotend1(0);
607
-  setTargetHotend2(0);
608
-  setTargetHotend3(0);
609
-  setTargetBed(0);
604
+  disable_all_heaters();
610 605
   fanSpeed = 0;
611 606
   lcd_return_to_status();
612 607
 }

Loading…
Cancel
Save