MINTEMP safety for ambient temperature < 18C

Silent mode acceleration limit lowered to 1000mm/s^2
This commit is contained in:
Robert Pelnar 2017-12-27 18:20:04 +01:00
parent 527b870700
commit f9d5619682
2 changed files with 29 additions and 5 deletions

View file

@ -75,8 +75,8 @@ const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic o
#define MANUAL_FEEDRATE {2700, 2700, 1000, 100} // set the speeds for manual moves (mm/min)
//Silent mode limits
#define SILENT_MAX_ACCEL_X 1024 // X-axis max acceleration in silent mode in mm/s^2
#define SILENT_MAX_ACCEL_Y 1024 // Y-axis max axxeleration in silent mode in mm/s^2
#define SILENT_MAX_ACCEL_X 1000 // X-axis max acceleration in silent mode in mm/s^2
#define SILENT_MAX_ACCEL_Y 1000 // Y-axis max axxeleration in silent mode in mm/s^2
#define SILENT_MAX_ACCEL_X_ST (100*SILENT_MAX_ACCEL_X) // X max accel in steps/s^2
#define SILENT_MAX_ACCEL_Y_ST (100*SILENT_MAX_ACCEL_Y) // Y max accel in steps/s^2
#define SILENT_MAX_FEEDRATE 172 //max feedrate in mm/s, because mode switched to normal for homming , this value limits also homing, it should be greater (160mm/s=9600mm/min>2700mm/min)

View file

@ -1908,9 +1908,8 @@ void check_max_temp()
}
void check_min_temp()
void check_min_temp_heater0()
{
if (current_temperature_raw_ambient > OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW) return;
//heater
#if HEATER_0_RAW_LO_TEMP > HEATER_0_RAW_HI_TEMP
if (current_temperature_raw[0] >= minttemp_raw[0]) {
@ -1919,7 +1918,10 @@ void check_min_temp()
#endif
min_temp_error(0);
}
//bed
}
void check_min_temp_bed()
{
#if HEATER_BED_RAW_LO_TEMP > HEATER_BED_RAW_HI_TEMP
if (current_temperature_bed_raw >= bed_minttemp_raw) {
#else
@ -1929,6 +1931,28 @@ void check_min_temp()
}
}
void check_min_temp()
{
static uint8_t heat_cycles = 0;
if (current_temperature_raw_ambient > OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)
{
if (READ(HEATER_0_PIN) == HIGH)
{
// if ((heat_cycles % 10) == 0)
// printf_P(PSTR("X%d\n"), heat_cycles);
if (heat_cycles > 50) //reaction time 5-10s
check_min_temp_heater0();
else
heat_cycles++;
}
else
heat_cycles = 0;
return;
}
check_min_temp_heater0();
check_min_temp_bed();
}
void check_fans() {
if (READ(TACH_0) != fan_state[0]) {
fan_edge_counter[0] ++;