From 45193b4a1d82023f1b763c0340e40ec5b6fcc51c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 19 Jul 2023 21:12:32 -0500 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=94=A5=20Always=20use=20ISR=20for=20B?= =?UTF-8?q?ABYSTEPPING=20(#26035)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/Configuration_adv.h | 1 - Marlin/src/HAL/ESP32/inc/SanityCheck.h | 4 ---- Marlin/src/feature/babystep.cpp | 4 ++-- Marlin/src/feature/babystep.h | 9 ++------- Marlin/src/inc/Changes.h | 2 ++ Marlin/src/module/stepper.cpp | 20 ++++++++++---------- Marlin/src/module/stepper.h | 4 ++-- Marlin/src/module/temperature.cpp | 8 -------- 8 files changed, 18 insertions(+), 34 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index b1fde0a45d5f..f97f9d01736e 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2206,7 +2206,6 @@ */ //#define BABYSTEPPING #if ENABLED(BABYSTEPPING) - //#define INTEGRATED_BABYSTEPPING // Integration of babystepping into the Stepper ISR //#define EP_BABYSTEPPING // M293/M294 babystepping with EMERGENCY_PARSER support //#define BABYSTEP_WITHOUT_HOMING //#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement) diff --git a/Marlin/src/HAL/ESP32/inc/SanityCheck.h b/Marlin/src/HAL/ESP32/inc/SanityCheck.h index e6c364a6fe4c..dd199c390ded 100644 --- a/Marlin/src/HAL/ESP32/inc/SanityCheck.h +++ b/Marlin/src/HAL/ESP32/inc/SanityCheck.h @@ -52,10 +52,6 @@ #error "FAST_PWM_FAN is not available on TinyBee." #endif -#if ALL(I2S_STEPPER_STREAM, BABYSTEPPING) && DISABLED(INTEGRATED_BABYSTEPPING) - #error "BABYSTEPPING on I2S stream requires INTEGRATED_BABYSTEPPING." -#endif - #if USING_PULLDOWNS #error "PULLDOWN pin mode is not available on ESP32 boards." #endif diff --git a/Marlin/src/feature/babystep.cpp b/Marlin/src/feature/babystep.cpp index e431e40165ff..c6717268a64f 100644 --- a/Marlin/src/feature/babystep.cpp +++ b/Marlin/src/feature/babystep.cpp @@ -66,7 +66,7 @@ void Babystep::add_mm(const AxisEnum axis, const_float_t mm) { steps[BS_AXIS_IND(axis)] = distance; TERN_(BABYSTEP_DISPLAY_TOTAL, axis_total[BS_TOTAL_IND(axis)] = distance); TERN_(BABYSTEP_ALWAYS_AVAILABLE, gcode.reset_stepper_timeout()); - TERN_(INTEGRATED_BABYSTEPPING, if (has_steps()) stepper.initiateBabystepping()); + TERN_(BABYSTEPPING, if (has_steps()) stepper.initiateBabystepping()); } #endif @@ -77,7 +77,7 @@ void Babystep::add_steps(const AxisEnum axis, const int16_t distance) { steps[BS_AXIS_IND(axis)] += distance; TERN_(BABYSTEP_DISPLAY_TOTAL, axis_total[BS_TOTAL_IND(axis)] += distance); TERN_(BABYSTEP_ALWAYS_AVAILABLE, gcode.reset_stepper_timeout()); - TERN_(INTEGRATED_BABYSTEPPING, if (has_steps()) stepper.initiateBabystepping()); + TERN_(BABYSTEPPING, if (has_steps()) stepper.initiateBabystepping()); } #if ENABLED(EP_BABYSTEPPING) diff --git a/Marlin/src/feature/babystep.h b/Marlin/src/feature/babystep.h index df88da6e147a..38a19a3b1473 100644 --- a/Marlin/src/feature/babystep.h +++ b/Marlin/src/feature/babystep.h @@ -23,13 +23,8 @@ #include "../inc/MarlinConfigPre.h" -#if ENABLED(INTEGRATED_BABYSTEPPING) - #define BABYSTEPS_PER_SEC 1000UL - #define BABYSTEP_TICKS ((STEPPER_TIMER_RATE) / (BABYSTEPS_PER_SEC)) -#else - #define BABYSTEPS_PER_SEC 976UL - #define BABYSTEP_TICKS ((TEMP_TIMER_RATE) / (BABYSTEPS_PER_SEC)) -#endif +#define BABYSTEPS_PER_SEC 1000UL +#define BABYSTEP_TICKS ((STEPPER_TIMER_RATE) / (BABYSTEPS_PER_SEC)) #if ANY(IS_CORE, BABYSTEP_XY, I2C_POSITION_ENCODERS) #define BS_AXIS_IND(A) A diff --git a/Marlin/src/inc/Changes.h b/Marlin/src/inc/Changes.h index 8a4a9c2b48fa..b64b6a7ca766 100644 --- a/Marlin/src/inc/Changes.h +++ b/Marlin/src/inc/Changes.h @@ -659,6 +659,8 @@ #error "Z3_USE_ENDSTOP is obsolete. Instead set Z2_STOP_PIN directly. (e.g., 'Z3_USE_ENDSTOP _ZMAX_' becomes 'Z3_STOP_PIN Z_MAX_PIN')" #elif defined(Z4_USE_ENDSTOP) #error "Z4_USE_ENDSTOP is obsolete. Instead set Z4_STOP_PIN directly. (e.g., 'Z4_USE_ENDSTOP _ZMAX_' becomes 'Z4_STOP_PIN Z_MAX_PIN')" +#elif defined(INTEGRATED_BABYSTEPPING) + #error "INTEGRATED_BABYSTEPPING is no longer needed and should be removed." #endif // L64xx stepper drivers have been removed diff --git a/Marlin/src/module/stepper.cpp b/Marlin/src/module/stepper.cpp index d1c8eef69c05..9bafe7443db1 100644 --- a/Marlin/src/module/stepper.cpp +++ b/Marlin/src/module/stepper.cpp @@ -106,7 +106,7 @@ Stepper stepper; // Singleton #include "../feature/bedlevel/bdl/bdl.h" #endif -#if ENABLED(INTEGRATED_BABYSTEPPING) +#if ENABLED(BABYSTEPPING) #include "../feature/babystep.h" #endif @@ -273,7 +273,7 @@ uint32_t Stepper::advance_divisor = 0, #endif #endif -#if ENABLED(INTEGRATED_BABYSTEPPING) +#if ENABLED(BABYSTEPPING) hal_timer_t Stepper::nextBabystepISR = BABYSTEP_NEVER; #endif @@ -1543,7 +1543,7 @@ void Stepper::isr() { // Define 2.5 msec task for auxilliary functions. if (!fxdTiCtrl_nextAuxISR) { endstops.update(); - TERN_(INTEGRATED_BABYSTEPPING, if (babystep.has_steps()) babystepping_isr()); + TERN_(BABYSTEPPING, if (babystep.has_steps()) babystepping_isr()); fxdTiCtrl_refreshAxisDidMove(); fxdTiCtrl_nextAuxISR = 0.0025f * (STEPPER_TIMER_RATE); } @@ -1574,7 +1574,7 @@ void Stepper::isr() { nextAdvanceISR = la_interval; #endif - #if ENABLED(INTEGRATED_BABYSTEPPING) + #if ENABLED(BABYSTEPPING) const bool is_babystep = (nextBabystepISR == 0); // 0 = Do Babystepping (XY)Z pulses if (is_babystep) nextBabystepISR = babystepping_isr(); #endif @@ -1583,7 +1583,7 @@ void Stepper::isr() { if (!nextMainISR) nextMainISR = block_phase_isr(); // Manage acc/deceleration, get next block - #if ENABLED(INTEGRATED_BABYSTEPPING) + #if ENABLED(BABYSTEPPING) if (is_babystep) // Avoid ANY stepping too soon after baby-stepping NOLESS(nextMainISR, (BABYSTEP_TICKS) / 8); // FULL STOP for 125µs after a baby-step @@ -1596,7 +1596,7 @@ void Stepper::isr() { TERN_(INPUT_SHAPING_X, NOMORE(interval, ShapingQueue::peek_x())); // Time until next input shaping echo for X TERN_(INPUT_SHAPING_Y, NOMORE(interval, ShapingQueue::peek_y())); // Time until next input shaping echo for Y TERN_(LIN_ADVANCE, NOMORE(interval, nextAdvanceISR)); // Come back early for Linear Advance? - TERN_(INTEGRATED_BABYSTEPPING, NOMORE(interval, nextBabystepISR)); // Come back early for Babystepping? + TERN_(BABYSTEPPING, NOMORE(interval, nextBabystepISR)); // Come back early for Babystepping? // // Compute remaining time for each ISR phase @@ -1608,7 +1608,7 @@ void Stepper::isr() { nextMainISR -= interval; TERN_(HAS_ZV_SHAPING, ShapingQueue::decrement_delays(interval)); TERN_(LIN_ADVANCE, if (nextAdvanceISR != LA_ADV_NEVER) nextAdvanceISR -= interval); - TERN_(INTEGRATED_BABYSTEPPING, if (nextBabystepISR != BABYSTEP_NEVER) nextBabystepISR -= interval); + TERN_(BABYSTEPPING, if (nextBabystepISR != BABYSTEP_NEVER) nextBabystepISR -= interval); } // standard motion control @@ -2807,7 +2807,7 @@ hal_timer_t Stepper::block_phase_isr() { #endif // LIN_ADVANCE -#if ENABLED(INTEGRATED_BABYSTEPPING) +#if ENABLED(BABYSTEPPING) // Timer interrupt for baby-stepping hal_timer_t Stepper::babystepping_isr() { @@ -3669,7 +3669,7 @@ void Stepper::report_positions() { // No other ISR should ever interrupt this! void Stepper::do_babystep(const AxisEnum axis, const bool direction) { - IF_DISABLED(INTEGRATED_BABYSTEPPING, cli()); + IF_DISABLED(BABYSTEPPING, cli()); switch (axis) { @@ -3750,7 +3750,7 @@ void Stepper::report_positions() { default: break; } - IF_DISABLED(INTEGRATED_BABYSTEPPING, sei()); + IF_DISABLED(BABYSTEPPING, sei()); } #endif // BABYSTEPPING diff --git a/Marlin/src/module/stepper.h b/Marlin/src/module/stepper.h index 8ec4024ea60a..7dbb6b8b5a1d 100644 --- a/Marlin/src/module/stepper.h +++ b/Marlin/src/module/stepper.h @@ -416,7 +416,7 @@ class Stepper { static bool la_active; // Whether linear advance is used on the present segment. #endif - #if ENABLED(INTEGRATED_BABYSTEPPING) + #if ENABLED(BABYSTEPPING) static constexpr hal_timer_t BABYSTEP_NEVER = HAL_TIMER_TYPE_MAX; static hal_timer_t nextBabystepISR; #endif @@ -475,7 +475,7 @@ class Stepper { static void advance_isr(); #endif - #if ENABLED(INTEGRATED_BABYSTEPPING) + #if ENABLED(BABYSTEPPING) // The Babystepping ISR phase static hal_timer_t babystepping_isr(); FORCE_INLINE static void initiateBabystepping() { diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index d7bf9c8b7936..d7c764540b4b 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -160,10 +160,6 @@ #include "stepper.h" #endif -#if ENABLED(BABYSTEPPING) && DISABLED(INTEGRATED_BABYSTEPPING) - #include "../feature/babystep.h" -#endif - #if ENABLED(FILAMENT_WIDTH_SENSOR) #include "../feature/filwidth.h" #endif @@ -4122,10 +4118,6 @@ void Temperature::isr() { // Additional ~1kHz Tasks // - #if ENABLED(BABYSTEPPING) && DISABLED(INTEGRATED_BABYSTEPPING) - babystep.task(); - #endif - // Check fan tachometers TERN_(HAS_FANCHECK, fan_check.update_tachometers()); From 6bc42300a1ce3fcbf2b396a6e1fbf11453f77544 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Thu, 20 Jul 2023 06:06:07 +0000 Subject: [PATCH 2/2] [cron] Bump distribution date (2023-07-20) --- Marlin/Version.h | 2 +- Marlin/src/inc/Version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Version.h b/Marlin/Version.h index 07a652980c8b..4d497d77fd3d 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -41,7 +41,7 @@ * here we define this default string as the date where the latest release * version was tagged. */ -//#define STRING_DISTRIBUTION_DATE "2023-07-18" +//#define STRING_DISTRIBUTION_DATE "2023-07-20" /** * Defines a generic printer name to be output to the LCD after booting Marlin. diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index bb12b390f91f..eb1db1bc5e98 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2023-07-18" + #define STRING_DISTRIBUTION_DATE "2023-07-20" #endif /**