SOFT_PWM: Do not switch off heaters twice on pwm_count wraparound
After wraparound, pwm_count <= pwm_mask holds, thus soft_pwm_X <= pwm_count guarantees soft_pwm_X < pwm_mask is true, and the heater will be switched off in the first branch. Do not evaluate the pwm conditions a second time, this reduces the instruction count (4 instructions per PWM) and text size (6 byte). Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
This commit is contained in:
parent
0a74774af1
commit
6a040a6967
1 changed files with 24 additions and 23 deletions
|
@ -1594,33 +1594,34 @@ void Temperature::isr() {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
if (soft_pwm_0 <= pwm_count_tmp) WRITE_HEATER_0(0);
|
if (soft_pwm_0 <= pwm_count_tmp) WRITE_HEATER_0(0);
|
||||||
#if HOTENDS > 1
|
#if HOTENDS > 1
|
||||||
if (soft_pwm_1 <= pwm_count_tmp) WRITE_HEATER_1(0);
|
if (soft_pwm_1 <= pwm_count_tmp) WRITE_HEATER_1(0);
|
||||||
|
#endif
|
||||||
#if HOTENDS > 2
|
#if HOTENDS > 2
|
||||||
if (soft_pwm_2 <= pwm_count_tmp) WRITE_HEATER_2(0);
|
if (soft_pwm_2 <= pwm_count_tmp) WRITE_HEATER_2(0);
|
||||||
#if HOTENDS > 3
|
#endif
|
||||||
if (soft_pwm_3 <= pwm_count_tmp) WRITE_HEATER_3(0);
|
#if HOTENDS > 3
|
||||||
|
if (soft_pwm_3 <= pwm_count_tmp) WRITE_HEATER_3(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_HEATER_BED
|
||||||
|
if (soft_pwm_BED <= pwm_count_tmp) WRITE_HEATER_BED(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(FAN_SOFT_PWM)
|
||||||
|
#if HAS_FAN0
|
||||||
|
if (soft_pwm_fan[0] <= pwm_count_tmp) WRITE_FAN(0);
|
||||||
|
#endif
|
||||||
|
#if HAS_FAN1
|
||||||
|
if (soft_pwm_fan[1] <= pwm_count_tmp) WRITE_FAN1(0);
|
||||||
|
#endif
|
||||||
|
#if HAS_FAN2
|
||||||
|
if (soft_pwm_fan[2] <= pwm_count_tmp) WRITE_FAN2(0);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
}
|
||||||
|
|
||||||
#if HAS_HEATER_BED
|
|
||||||
if (soft_pwm_BED <= pwm_count_tmp) WRITE_HEATER_BED(0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ENABLED(FAN_SOFT_PWM)
|
|
||||||
#if HAS_FAN0
|
|
||||||
if (soft_pwm_fan[0] <= pwm_count_tmp) WRITE_FAN(0);
|
|
||||||
#endif
|
|
||||||
#if HAS_FAN1
|
|
||||||
if (soft_pwm_fan[1] <= pwm_count_tmp) WRITE_FAN1(0);
|
|
||||||
#endif
|
|
||||||
#if HAS_FAN2
|
|
||||||
if (soft_pwm_fan[2] <= pwm_count_tmp) WRITE_FAN2(0);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// SOFT_PWM_SCALE to frequency:
|
// SOFT_PWM_SCALE to frequency:
|
||||||
//
|
//
|
||||||
|
|
Reference in a new issue