|
@@ -743,24 +743,26 @@ void manage_heater()
|
|
|
|
|
|
#ifdef FAN_SOFT_PWM
|
|
|
#ifdef FANCHECK
|
|
|
- if ((_millis() - extruder_autofan_last_check > FAN_CHECK_PERIOD) && (!fan_measuring)) {
|
|
|
- extruder_autofan_last_check = _millis();
|
|
|
- fanSpeedBckp = fanSpeedSoftPwm;
|
|
|
-
|
|
|
- if (fanSpeedSoftPwm >= MIN_PRINT_FAN_SPEED) { //if we are in rage where we are doing fan check, set full PWM range for a short time to measure fan RPM by reading tacho signal without modulation by PWM signal
|
|
|
- // printf_P(PSTR("fanSpeedSoftPwm 1: %d\n"), fanSpeedSoftPwm);
|
|
|
- fanSpeedSoftPwm = 255;
|
|
|
- }
|
|
|
- fan_measuring = true;
|
|
|
- }
|
|
|
- if ((_millis() - extruder_autofan_last_check > FAN_CHECK_DURATION) && (fan_measuring)) {
|
|
|
- countFanSpeed();
|
|
|
- checkFanSpeed();
|
|
|
- //printf_P(PSTR("fanSpeedSoftPwm 1: %d\n"), fanSpeedSoftPwm);
|
|
|
- fanSpeedSoftPwm = fanSpeedBckp;
|
|
|
- //printf_P(PSTR("fan PWM: %d; extr fanSpeed measured: %d; print fan speed measured: %d \n"), fanSpeedBckp, fan_speed[0], fan_speed[1]);
|
|
|
- extruder_autofan_last_check = _millis();
|
|
|
- fan_measuring = false;
|
|
|
+ if (fans_check_enabled) {
|
|
|
+ if ((_millis() - extruder_autofan_last_check > FAN_CHECK_PERIOD) && (!fan_measuring)) {
|
|
|
+ extruder_autofan_last_check = _millis();
|
|
|
+ fanSpeedBckp = fanSpeedSoftPwm;
|
|
|
+
|
|
|
+ if (fanSpeedSoftPwm >= MIN_PRINT_FAN_SPEED) { //if we are in rage where we are doing fan check, set full PWM range for a short time to measure fan RPM by reading tacho signal without modulation by PWM signal
|
|
|
+ // printf_P(PSTR("fanSpeedSoftPwm 1: %d\n"), fanSpeedSoftPwm);
|
|
|
+ fanSpeedSoftPwm = 255;
|
|
|
+ }
|
|
|
+ fan_measuring = true;
|
|
|
+ }
|
|
|
+ if ((_millis() - extruder_autofan_last_check > FAN_CHECK_DURATION) && (fan_measuring)) {
|
|
|
+ countFanSpeed();
|
|
|
+ checkFanSpeed();
|
|
|
+ //printf_P(PSTR("fanSpeedSoftPwm 1: %d\n"), fanSpeedSoftPwm);
|
|
|
+ fanSpeedSoftPwm = fanSpeedBckp;
|
|
|
+ //printf_P(PSTR("fan PWM: %d; extr fanSpeed measured: %d; print fan speed measured: %d \n"), fanSpeedBckp, fan_speed[0], fan_speed[1]);
|
|
|
+ extruder_autofan_last_check = _millis();
|
|
|
+ fan_measuring = false;
|
|
|
+ }
|
|
|
}
|
|
|
#endif //FANCHECK
|
|
|
checkExtruderAutoFans();
|
|
@@ -768,8 +770,8 @@ void manage_heater()
|
|
|
if(_millis() - extruder_autofan_last_check > 1000) // only need to check fan state very infrequently
|
|
|
{
|
|
|
#if (defined(FANCHECK) && ((defined(TACH_0) && (TACH_0 >-1)) || (defined(TACH_1) && (TACH_1 > -1))))
|
|
|
- countFanSpeed();
|
|
|
- checkFanSpeed();
|
|
|
+ countFanSpeed();
|
|
|
+ checkFanSpeed();
|
|
|
#endif //(defined(TACH_0) && TACH_0 >-1) || (defined(TACH_1) && TACH_1 > -1)
|
|
|
checkExtruderAutoFans();
|
|
|
extruder_autofan_last_check = _millis();
|