Skip to content

Commit 473d2b8

Browse files
marciotthinkyhead
authored andcommitted
Fix FAST_PWM_FAN / TouchUI with NO_MOTION_BEFORE_HOMING (MarlinFirmware#25005)
Fix regressions from MarlinFirmware#20323, MarlinFirmware#23463
1 parent 968f04d commit 473d2b8

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

Marlin/src/HAL/AVR/fast_pwm.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,11 @@ void MarlinHAL::set_pwm_frequency(const pin_t pin, const uint16_t f_desired) {
146146
LIMIT(res_pc_temp, 1U, maxtop);
147147

148148
// Calculate frequencies of test prescaler and resolution values
149-
const uint32_t f_diff = _MAX(f, f_desired) - _MIN(f, f_desired),
150-
f_fast_temp = (F_CPU) / (p * (1 + res_fast_temp)),
151-
f_fast_diff = _MAX(f_fast_temp, f_desired) - _MIN(f_fast_temp, f_desired),
152-
f_pc_temp = (F_CPU) / (2 * p * res_pc_temp),
153-
f_pc_diff = _MAX(f_pc_temp, f_desired) - _MIN(f_pc_temp, f_desired);
149+
const int f_diff = ABS(f - int(f_desired)),
150+
f_fast_temp = (F_CPU) / (p * (1 + res_fast_temp)),
151+
f_fast_diff = ABS(f_fast_temp - int(f_desired)),
152+
f_pc_temp = (F_CPU) / (2 * p * res_pc_temp),
153+
f_pc_diff = ABS(f_pc_temp - int(f_desired));
154154

155155
if (f_fast_diff < f_diff && f_fast_diff <= f_pc_diff) { // FAST values are closest to desired f
156156
// Set the Wave Generation Mode to FAST PWM

Marlin/src/lcd/extui/ui_api.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -375,9 +375,9 @@ namespace ExtUI {
375375
bool canMove(const axis_t axis) {
376376
switch (axis) {
377377
#if IS_KINEMATIC || ENABLED(NO_MOTION_BEFORE_HOMING)
378-
case X: return axis_should_home(X_AXIS);
379-
OPTCODE(HAS_Y_AXIS, case Y: return axis_should_home(Y_AXIS))
380-
OPTCODE(HAS_Z_AXIS, case Z: return axis_should_home(Z_AXIS))
378+
case X: return !axis_should_home(X_AXIS);
379+
OPTCODE(HAS_Y_AXIS, case Y: return !axis_should_home(Y_AXIS))
380+
OPTCODE(HAS_Z_AXIS, case Z: return !axis_should_home(Z_AXIS))
381381
#else
382382
case X: case Y: case Z: return true;
383383
#endif

0 commit comments

Comments
 (0)