diff --git a/Firmware/fancheck.cpp b/Firmware/fancheck.cpp index ad14e3b44..9cf103179 100755 --- a/Firmware/fancheck.cpp +++ b/Firmware/fancheck.cpp @@ -280,11 +280,18 @@ void checkFans() #endif //DEBUG_DISABLE_FANCHECK } +void resetFanCheck() { + fan_measuring = false; + extruder_autofan_last_check = _millis(); +} + + void hotendFanSetFullSpeed() { #ifdef EXTRUDER_ALTFAN_DETECT altfanStatus.altfanOverride = 1; //full speed #endif //EXTRUDER_ALTFAN_DETECT + resetFanCheck(); setExtruderAutoFanState(3); SET_OUTPUT(FAN_PIN); #ifdef FAN_SOFT_PWM @@ -301,6 +308,7 @@ void hotendDefaultAutoFanState() #ifdef EXTRUDER_ALTFAN_DETECT altfanStatus.altfanOverride = eeprom_read_byte((uint8_t*)EEPROM_ALTFAN_OVERRIDE); #endif + resetFanCheck(); setExtruderAutoFanState(1); #endif } diff --git a/Firmware/fancheck.h b/Firmware/fancheck.h index 0e0f2743c..c94834bb6 100755 --- a/Firmware/fancheck.h +++ b/Firmware/fancheck.h @@ -32,5 +32,7 @@ void checkExtruderAutoFans(); #endif void checkFans(); +void resetFanCheck(); // resets the fan measuring state + void hotendFanSetFullSpeed(); void hotendDefaultAutoFanState(); diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 6ddbe6423..5a365d885 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -2634,11 +2634,9 @@ namespace temp_model_cal { // set current fan speed for both front/backend static __attribute__((noinline)) void set_fan_speed(uint8_t fan_speed) { -#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) // reset the fan measuring state due to missing hysteresis handling on the checking side - fan_measuring = false; - extruder_autofan_last_check = _millis(); -#endif + resetFanCheck(); + fanSpeed = fan_speed; #ifdef FAN_SOFT_PWM fanSpeedSoftPwm = fan_speed;