|
@ -83,15 +83,20 @@ unsigned char soft_pwm_bed; |
|
|
#ifdef FILAMENT_SENSOR |
|
|
#ifdef FILAMENT_SENSOR |
|
|
int current_raw_filwidth = 0; //Holds measured filament diameter - one extruder only
|
|
|
int current_raw_filwidth = 0; //Holds measured filament diameter - one extruder only
|
|
|
#endif |
|
|
#endif |
|
|
#if defined (THERMAL_RUNAWAY_PROTECTION_PERIOD) && THERMAL_RUNAWAY_PROTECTION_PERIOD > 0 |
|
|
|
|
|
void thermal_runaway_protection(int *state, unsigned long *timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc); |
|
|
#define HAS_HEATER_THERMAL_PROTECTION (defined(THERMAL_RUNAWAY_PROTECTION_PERIOD) && THERMAL_RUNAWAY_PROTECTION_PERIOD > 0) |
|
|
static int thermal_runaway_state_machine[4]; // = {0,0,0,0};
|
|
|
#define HAS_BED_THERMAL_PROTECTION (defined(THERMAL_RUNAWAY_PROTECTION_BED_PERIOD) && THERMAL_RUNAWAY_PROTECTION_BED_PERIOD > 0 && TEMP_SENSOR_BED != 0) |
|
|
static unsigned long thermal_runaway_timer[4]; // = {0,0,0,0};
|
|
|
#if HAS_HEATER_THERMAL_PROTECTION || HAS_BED_THERMAL_PROTECTION |
|
|
static bool thermal_runaway = false; |
|
|
static bool thermal_runaway = false; |
|
|
#if TEMP_SENSOR_BED != 0 |
|
|
void thermal_runaway_protection(int *state, unsigned long *timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc); |
|
|
static int thermal_runaway_bed_state_machine; |
|
|
#if HAS_HEATER_THERMAL_PROTECTION |
|
|
static unsigned long thermal_runaway_bed_timer; |
|
|
static int thermal_runaway_state_machine[4]; // = {0,0,0,0};
|
|
|
#endif |
|
|
static unsigned long thermal_runaway_timer[4]; // = {0,0,0,0};
|
|
|
|
|
|
#endif |
|
|
|
|
|
#if HAS_BED_THERMAL_PROTECTION |
|
|
|
|
|
static int thermal_runaway_bed_state_machine; |
|
|
|
|
|
static unsigned long thermal_runaway_bed_timer; |
|
|
|
|
|
#endif |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
//===========================================================================
|
|
|
//===========================================================================
|
|
@ -650,7 +655,7 @@ void manage_heater() { |
|
|
|
|
|
|
|
|
#if TEMP_SENSOR_BED != 0 |
|
|
#if TEMP_SENSOR_BED != 0 |
|
|
|
|
|
|
|
|
#if defined(THERMAL_RUNAWAY_PROTECTION_BED_PERIOD) && THERMAL_RUNAWAY_PROTECTION_BED_PERIOD > 0 |
|
|
#if HAS_BED_THERMAL_PROTECTION |
|
|
thermal_runaway_protection(&thermal_runaway_bed_state_machine, &thermal_runaway_bed_timer, current_temperature_bed, target_temperature_bed, 9, THERMAL_RUNAWAY_PROTECTION_BED_PERIOD, THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS); |
|
|
thermal_runaway_protection(&thermal_runaway_bed_state_machine, &thermal_runaway_bed_timer, current_temperature_bed, target_temperature_bed, 9, THERMAL_RUNAWAY_PROTECTION_BED_PERIOD, THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
@ -1008,7 +1013,7 @@ void setWatch() { |
|
|
#endif |
|
|
#endif |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#if defined(THERMAL_RUNAWAY_PROTECTION_PERIOD) && THERMAL_RUNAWAY_PROTECTION_PERIOD > 0 |
|
|
#if HAS_HEATER_THERMAL_PROTECTION || HAS_BED_THERMAL_PROTECTION |
|
|
void thermal_runaway_protection(int *state, unsigned long *timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc) |
|
|
void thermal_runaway_protection(int *state, unsigned long *timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc) |
|
|
{ |
|
|
{ |
|
|
/*
|
|
|
/*
|
|
|