From 122b01d253b9d1e0e4065e04bd7b971e2896adcc Mon Sep 17 00:00:00 2001 From: Mihail Dumitrescu Date: Mon, 11 Dec 2023 15:33:48 +0200 Subject: [PATCH] Fully guard multistepping code in Stepper::pulse_phase_isr(). --- Marlin/src/module/stepper.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Marlin/src/module/stepper.cpp b/Marlin/src/module/stepper.cpp index 200552af49..3cc73cb358 100644 --- a/Marlin/src/module/stepper.cpp +++ b/Marlin/src/module/stepper.cpp @@ -1752,7 +1752,7 @@ void Stepper::isr() { #if MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE #define ISR_PULSE_CONTROL 1 #endif -#if ISR_PULSE_CONTROL && DISABLED(I2S_STEPPER_STREAM) +#if ISR_PULSE_CONTROL && MULTISTEPPING_LIMIT > 1 && DISABLED(I2S_STEPPER_STREAM) #define ISR_MULTI_STEPS 1 #endif @@ -1801,11 +1801,9 @@ void Stepper::pulse_phase_isr() { // Just update the value we will get at the end of the loop step_events_completed += events_to_do; + TERN_(ISR_PULSE_CONTROL, USING_TIMED_PULSE()); // Take multiple steps per interrupt (For high speed moves) - #if ISR_MULTI_STEPS - bool firstStep = true; - USING_TIMED_PULSE(); - #endif + TERN_(ISR_MULTI_STEPS, bool firstStep = true); // Direct Stepping page? const bool is_page = current_block->is_page(); @@ -2110,7 +2108,7 @@ void Stepper::pulse_phase_isr() { TERN_(I2S_STEPPER_STREAM, i2s_push_sample()); // TODO: need to deal with MINIMUM_STEPPER_PULSE over i2s - #if ISR_MULTI_STEPS + #if ISR_PULSE_CONTROL START_TIMED_PULSE(); AWAIT_HIGH_PULSE(); #endif