From 2fb1a2b7a3ad12b60eb4123a609944f6fc1cb367 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 26 Apr 2024 19:24:03 -0500 Subject: [PATCH] correction --- Marlin/src/module/planner.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/src/module/planner.cpp b/Marlin/src/module/planner.cpp index 5de6e535de..1f3e4069aa 100644 --- a/Marlin/src/module/planner.cpp +++ b/Marlin/src/module/planner.cpp @@ -801,8 +801,10 @@ void Planner::calculate_trapezoid_for_block(block_t * const block, const_float_t // should protect against it. But removing this code produces judder in direction-switching // moves. This is because the current discrete stepping math diverges from physical motion under // constant acceleration when acceleration_steps_per_s2 is large compared to initial/final_rate. - LIMIT(initial_rate, uint32_t(MINIMAL_STEP_RATE), block->nominal_rate); - LIMIT(final_rate, uint32_t(MINIMAL_STEP_RATE), block->nominal_rate); + NOLESS(initial_rate, uint32_t(MINIMAL_STEP_RATE)); // Enforce the minimum speed + NOLESS(final_rate, uint32_t(MINIMAL_STEP_RATE)); + NOMORE(initial_rate, block->nominal_rate); // NOTE: The nominal rate may be less than MINIMAL_STEP_RATE! + NOMORE(final_rate, block->nominal_rate); #if ANY(S_CURVE_ACCELERATION, LIN_ADVANCE) // If we have some plateau time, the cruise rate will be the nominal rate