|
|
@ -448,6 +448,7 @@ void checkExtruderAutoFans() |
|
|
|
// Temperature Error Handlers
|
|
|
|
//
|
|
|
|
inline void _temp_error(int e, const char *serial_msg, const char *lcd_msg) { |
|
|
|
static bool killed = false; |
|
|
|
if (IsRunning()) { |
|
|
|
SERIAL_ERROR_START; |
|
|
|
serialprintPGM(serial_msg); |
|
|
@ -455,22 +456,23 @@ inline void _temp_error(int e, const char *serial_msg, const char *lcd_msg) { |
|
|
|
if (e >= 0) SERIAL_ERRORLN((int)e); else SERIAL_ERRORLNPGM(MSG_HEATER_BED); |
|
|
|
} |
|
|
|
#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE |
|
|
|
kill(lcd_msg); |
|
|
|
if (!killed) { |
|
|
|
Running = false; |
|
|
|
killed = true; |
|
|
|
kill(lcd_msg); |
|
|
|
} |
|
|
|
else |
|
|
|
disable_all_heaters(); // paranoia
|
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
void max_temp_error(uint8_t e) { |
|
|
|
disable_all_heaters(); |
|
|
|
_temp_error(e, PSTR(MSG_T_MAXTEMP), PSTR(MSG_ERR_MAXTEMP)); |
|
|
|
} |
|
|
|
void min_temp_error(uint8_t e) { |
|
|
|
disable_all_heaters(); |
|
|
|
_temp_error(e, PSTR(MSG_T_MINTEMP), PSTR(MSG_ERR_MINTEMP)); |
|
|
|
} |
|
|
|
void bed_max_temp_error(void) { |
|
|
|
#if HAS_HEATER_BED |
|
|
|
WRITE_HEATER_BED(0); |
|
|
|
#endif |
|
|
|
_temp_error(-1, PSTR(MSG_T_MAXTEMP), PSTR(MSG_ERR_MAXTEMP_BED)); |
|
|
|
} |
|
|
|
|
|
|
@ -637,7 +639,6 @@ void manage_heater() { |
|
|
|
|
|
|
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT |
|
|
|
if (fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) { |
|
|
|
disable_all_heaters(); |
|
|
|
_temp_error(0, PSTR(MSG_EXTRUDER_SWITCHED_OFF), PSTR(MSG_ERR_REDUNDANT_TEMP)); |
|
|
|
} |
|
|
|
#endif |
|
|
@ -1580,10 +1581,7 @@ ISR(TIMER0_COMPB_vect) { |
|
|
|
#else |
|
|
|
#define GEBED >= |
|
|
|
#endif |
|
|
|
if (current_temperature_bed_raw GEBED bed_maxttemp_raw) { |
|
|
|
target_temperature_bed = 0; |
|
|
|
bed_max_temp_error(); |
|
|
|
} |
|
|
|
if (current_temperature_bed_raw GEBED bed_maxttemp_raw) bed_max_temp_error(); |
|
|
|
#endif |
|
|
|
|
|
|
|
} // temp_count >= OVERSAMPLENR
|
|
|
|