From ce656e2a268a120ccef77a7d80cc5c1c4fcc7f7e Mon Sep 17 00:00:00 2001 From: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com> Date: Thu, 27 Jun 2019 16:07:45 -0400 Subject: [PATCH] Update G-code injection, sub-commands (#14418) --- Marlin/src/Marlin.cpp | 19 ++++++++----------- Marlin/src/gcode/bedlevel/abl/G29.cpp | 2 +- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp index cc4ee1b70..08042dd5c 100644 --- a/Marlin/src/Marlin.cpp +++ b/Marlin/src/Marlin.cpp @@ -502,19 +502,16 @@ void manage_inactivity(const bool ignore_stepper_queue/*=false*/) { #endif #if HAS_HOME - // Check to see if we have to home, use poor man's debouncer - // --------------------------------------------------------- - static int homeDebounceCount = 0; // poor man's debouncing count - const int HOME_DEBOUNCE_DELAY = 2500; - if (!IS_SD_PRINTING() && !READ(HOME_PIN)) { - if (!homeDebounceCount) { - queue.inject_P(PSTR("G28")); + // Handle a standalone HOME button + constexpr millis_t HOME_DEBOUNCE_DELAY = 1000UL; + static millis_t next_home_key_ms; // = 0 + if (!IS_SD_PRINTING() && !READ(HOME_PIN)) { // HOME_PIN goes LOW when pressed + const millis_t ms = millis(); + if (ELAPSED(ms, next_home_key_ms)) { + next_home_key_ms = ms + HOME_DEBOUNCE_DELAY; LCD_MESSAGEPGM(MSG_AUTO_HOME); + queue.enqueue_now_P(PSTR("G28")); } - if (homeDebounceCount < HOME_DEBOUNCE_DELAY) - homeDebounceCount++; - else - homeDebounceCount = 0; } #endif diff --git a/Marlin/src/gcode/bedlevel/abl/G29.cpp b/Marlin/src/gcode/bedlevel/abl/G29.cpp index bcef33ec4..d17e1ff62 100644 --- a/Marlin/src/gcode/bedlevel/abl/G29.cpp +++ b/Marlin/src/gcode/bedlevel/abl/G29.cpp @@ -966,7 +966,7 @@ G29_TYPE GcodeSuite::G29() { #ifdef Z_PROBE_END_SCRIPT if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPAIR("Z Probe End Script: ", Z_PROBE_END_SCRIPT); planner.synchronize(); - queue.inject_P(PSTR(Z_PROBE_END_SCRIPT)); + process_subcommands_now_P(PSTR(Z_PROBE_END_SCRIPT)); #endif // Auto Bed Leveling is complete! Enable if possible.