Tweak stepper shutdown test
This commit is contained in:
		| @@ -466,10 +466,12 @@ inline void manage_inactivity(const bool ignore_stepper_queue=false) { | ||||
|   const millis_t ms = millis(); | ||||
|  | ||||
|   // Prevent steppers timing-out in the middle of M600 | ||||
|   #define STAY_TEST (BOTH(ADVANCED_PAUSE_FEATURE, PAUSE_PARK_NO_STEPPER_TIMEOUT) && did_pause_print) | ||||
|   // unless PAUSE_PARK_NO_STEPPER_TIMEOUT is disabled | ||||
|   const bool parked_or_ignoring = ignore_stepper_queue || | ||||
|      (BOTH(ADVANCED_PAUSE_FEATURE, PAUSE_PARK_NO_STEPPER_TIMEOUT) && did_pause_print); | ||||
|  | ||||
|   if (STAY_TEST || ignore_stepper_queue) | ||||
|     gcode.reset_stepper_timeout(ms); | ||||
|   // Reset both the M18/M84 activity timeout and the M85 max 'kill' timeout | ||||
|   if (parked_or_ignoring) gcode.reset_stepper_timeout(ms); | ||||
|  | ||||
|   if (gcode.stepper_max_timed_out(ms)) { | ||||
|     SERIAL_ERROR_START(); | ||||
| @@ -477,17 +479,25 @@ inline void manage_inactivity(const bool ignore_stepper_queue=false) { | ||||
|     kill(); | ||||
|   } | ||||
|  | ||||
|   // M18 / M94 : Handle steppers inactive time timeout | ||||
|   if (gcode.stepper_inactive_time) { | ||||
|  | ||||
|     static bool already_shutdown_steppers; // = false | ||||
|  | ||||
|     // Any moves in the planner? Resets both the M18/M84 | ||||
|     // activity timeout and the M85 max 'kill' timeout | ||||
|     if (planner.has_blocks_queued()) | ||||
|       gcode.reset_stepper_timeout(ms); | ||||
|     else if (!STAY_TEST && !ignore_stepper_queue && gcode.stepper_inactive_timeout()) { | ||||
|     else if (!parked_or_ignoring && gcode.stepper_inactive_timeout()) { | ||||
|       if (!already_shutdown_steppers) { | ||||
|         already_shutdown_steppers = true;  // L6470 SPI will consume 99% of free time without this | ||||
|  | ||||
|         // Individual axes will be disabled if configured | ||||
|         if (ENABLED(DISABLE_INACTIVE_X)) DISABLE_AXIS_X(); | ||||
|         if (ENABLED(DISABLE_INACTIVE_Y)) DISABLE_AXIS_Y(); | ||||
|         if (ENABLED(DISABLE_INACTIVE_Z)) DISABLE_AXIS_Z(); | ||||
|         if (ENABLED(DISABLE_INACTIVE_E)) disable_e_steppers(); | ||||
|  | ||||
|         #if BOTH(HAS_LCD_MENU, AUTO_BED_LEVELING_UBL) | ||||
|           if (ubl.lcd_map_control) { | ||||
|             ubl.lcd_map_control = false; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user