Only watch the heater that was set

This commit is contained in:
Scott Lahteine 2015-05-10 20:26:45 -07:00
parent 28c87ec81b
commit 9b3d4380d3
4 changed files with 12 additions and 14 deletions

View File

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

View File

@ -1005,16 +1005,14 @@ void tp_init() {
* their target temperature by a configurable margin. * their target temperature by a configurable margin.
* This is called when the temperature is set. (M104, M109) * 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; millis_t ms = millis() + WATCH_TEMP_PERIOD;
for (int e = 0; e < EXTRUDERS; e++) { if (degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2)) {
if (degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2)) { watch_target_temp[e] = degHotend(e) + WATCH_TEMP_INCREASE;
watch_target_temp[e] = degHotend(e) + WATCH_TEMP_INCREASE; watch_heater_next_ms[e] = ms;
watch_heater_next_ms[e] = ms; }
} else
else watch_heater_next_ms[e] = 0;
watch_heater_next_ms[e] = 0;
}
} }
#endif #endif

View File

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

View File

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