Only watch the heater that was set

2.0.x
Scott Lahteine 10 years ago
parent 28c87ec81b
commit 9b3d4380d3

@ -3168,7 +3168,7 @@ inline void gcode_M104() {
#endif
#ifdef WATCH_TEMP_PERIOD
start_watching_heaters();
start_watching_heater(target_extruder);
#endif
}
}
@ -3282,7 +3282,7 @@ inline void gcode_M109() {
#endif
#ifdef WATCH_TEMP_PERIOD
start_watching_heaters();
start_watching_heater(target_extruder);
#endif
millis_t temp_ms = millis();

@ -1005,9 +1005,8 @@ void tp_init() {
* their target temperature by a configurable margin.
* This is called when the temperature is set. (M104, M109)
*/
void start_watching_heaters() {
void start_watching_heater(int e) {
millis_t ms = millis() + WATCH_TEMP_PERIOD;
for (int e = 0; e < EXTRUDERS; e++) {
if (degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2)) {
watch_target_temp[e] = degHotend(e) + WATCH_TEMP_INCREASE;
watch_heater_next_ms[e] = ms;
@ -1015,7 +1014,6 @@ void tp_init() {
else
watch_heater_next_ms[e] = 0;
}
}
#endif
#if HAS_HEATER_THERMAL_PROTECTION || HAS_BED_THERMAL_PROTECTION

@ -138,7 +138,7 @@ void setExtruderAutoFanState(int pin, bool state);
void checkExtruderAutoFans();
#ifdef WATCH_TEMP_PERIOD
void start_watching_heaters();
void start_watching_heater(int e=0);
#endif
FORCE_INLINE void autotempShutdown() {

@ -522,7 +522,7 @@ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fa
fanSpeed = fan;
lcd_return_to_status();
#ifdef WATCH_TEMP_PERIOD
start_watching_heaters();
if (endnum >= 0) start_watching_heater(endnum);
#endif
}
void lcd_preheat_pla0() { _lcd_preheat(0, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }

Loading…
Cancel
Save