Optimise checkFanSpeed()

Changes save 28 bytes of flash
This commit is contained in:
Guðni Már Gilbert 2022-03-06 12:44:08 +00:00
parent 56cb8cbc63
commit d42ef4784c
1 changed files with 19 additions and 17 deletions

View File

@ -558,19 +558,18 @@ void countFanSpeed()
void checkFanSpeed() void checkFanSpeed()
{ {
uint8_t max_print_fan_errors = 0; uint8_t max_fan_errors[2];
uint8_t max_extruder_fan_errors = 0;
#ifdef FAN_SOFT_PWM #ifdef FAN_SOFT_PWM
max_print_fan_errors = 3; //15 seconds max_fan_errors[1] = 3; // 15 seconds (Print fan)
max_extruder_fan_errors = 2; //10seconds max_fan_errors[0] = 2; // 10 seconds (Extruder fan)
#else //FAN_SOFT_PWM #else //FAN_SOFT_PWM
max_print_fan_errors = 15; //15 seconds max_fan_errors[1] = 15; // 15 seconds (Print fan)
max_extruder_fan_errors = 5; //5 seconds max_fan_errors[0] = 5; // 5 seconds (Extruder fan)
#endif //FAN_SOFT_PWM #endif //FAN_SOFT_PWM
if(fans_check_enabled != false) if(fans_check_enabled)
fans_check_enabled = (eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED) > 0); fans_check_enabled = (eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED) > 0);
static unsigned char fan_speed_errors[2] = { 0,0 }; static uint8_t fan_speed_errors[2] = { 0,0 };
#if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 >-1)) #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 >-1))
if ((fan_speed[0] < 20) && (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)){ fan_speed_errors[0]++;} if ((fan_speed[0] < 20) && (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)){ fan_speed_errors[0]++;}
else fan_speed_errors[0] = 0; else fan_speed_errors[0] = 0;
@ -589,13 +588,16 @@ void checkFanSpeed()
fan_check_error = EFCE_OK; //if the issue is fixed while the printer is doing nothing, reenable processing immediately. fan_check_error = EFCE_OK; //if the issue is fixed while the printer is doing nothing, reenable processing immediately.
lcd_reset_alert_level(); //for another fan speed error lcd_reset_alert_level(); //for another fan speed error
} }
if ((fan_speed_errors[0] > max_extruder_fan_errors) && fans_check_enabled && (fan_check_error == EFCE_OK)) { if (fans_check_enabled && (fan_check_error == EFCE_OK))
fan_speed_errors[0] = 0; {
fanSpeedError(0); //extruder fan for (uint8_t fan = 0; fan < 2; fan++)
} {
if ((fan_speed_errors[1] > max_print_fan_errors) && fans_check_enabled && (fan_check_error == EFCE_OK)) { if (fan_speed_errors[fan] > max_fan_errors[fan])
fan_speed_errors[1] = 0; {
fanSpeedError(1); //print fan fan_speed_errors[fan] = 0;
fanSpeedError(fan);
}
}
} }
} }