️ Reduce calls to set fan PWM (#23149)

This commit is contained in:
Tanguy Pruvot 2021-11-20 02:44:53 +01:00 committed by Scott Lahteine
parent 2cc4a1b326
commit 281ed99868

View file

@ -1311,7 +1311,8 @@ void Planner::check_axes_activity() {
#endif #endif
#if HAS_TAIL_FAN_SPEED #if HAS_TAIL_FAN_SPEED
uint8_t tail_fan_speed[FAN_COUNT]; static uint8_t tail_fan_speed[FAN_COUNT];
bool fans_need_update = false;
#endif #endif
#if ENABLED(BARICUDA) #if ENABLED(BARICUDA)
@ -1330,7 +1331,13 @@ void Planner::check_axes_activity() {
#endif #endif
#if HAS_TAIL_FAN_SPEED #if HAS_TAIL_FAN_SPEED
FANS_LOOP(i) tail_fan_speed[i] = thermalManager.scaledFanSpeed(i, block->fan_speed[i]); FANS_LOOP(i) {
const uint8_t spd = thermalManager.scaledFanSpeed(i, block->fan_speed[i]);
if (tail_fan_speed[i] != spd) {
fans_need_update = true;
tail_fan_speed[i] = spd;
}
}
#endif #endif
#if ENABLED(BARICUDA) #if ENABLED(BARICUDA)
@ -1358,7 +1365,13 @@ void Planner::check_axes_activity() {
TERN_(HAS_CUTTER, cutter.refresh()); TERN_(HAS_CUTTER, cutter.refresh());
#if HAS_TAIL_FAN_SPEED #if HAS_TAIL_FAN_SPEED
FANS_LOOP(i) tail_fan_speed[i] = thermalManager.scaledFanSpeed(i); FANS_LOOP(i) {
const uint8_t spd = thermalManager.scaledFanSpeed(i);
if (tail_fan_speed[i] != spd) {
fans_need_update = true;
tail_fan_speed[i] = spd;
}
}
#endif #endif
#if ENABLED(BARICUDA) #if ENABLED(BARICUDA)
@ -1384,7 +1397,7 @@ void Planner::check_axes_activity() {
// Update Fan speeds // Update Fan speeds
// Only if synchronous M106/M107 is disabled // Only if synchronous M106/M107 is disabled
// //
TERN_(HAS_TAIL_FAN_SPEED, sync_fan_speeds(tail_fan_speed)); TERN_(HAS_TAIL_FAN_SPEED, if (fans_need_update) sync_fan_speeds(tail_fan_speed));
TERN_(AUTOTEMP, autotemp_task()); TERN_(AUTOTEMP, autotemp_task());