diff --git a/Marlin/src/gcode/feature/pause/G60.cpp b/Marlin/src/gcode/feature/pause/G60.cpp index 94b73cd7d..a0d099ad6 100644 --- a/Marlin/src/gcode/feature/pause/G60.cpp +++ b/Marlin/src/gcode/feature/pause/G60.cpp @@ -45,7 +45,7 @@ void GcodeSuite::G60() { } stored_position[slot] = current_position; - SBI(saved_slots, slot); + SBI(saved_slots[slot >> 3], slot & 0b00000111); #if ENABLED(SAVED_POSITIONS_DEBUG) const xyze_pos_t &pos = stored_position[slot]; diff --git a/Marlin/src/gcode/feature/pause/G61.cpp b/Marlin/src/gcode/feature/pause/G61.cpp index 5d854dfab..d531c15c8 100644 --- a/Marlin/src/gcode/feature/pause/G61.cpp +++ b/Marlin/src/gcode/feature/pause/G61.cpp @@ -25,7 +25,7 @@ #if SAVED_POSITIONS #include "../../../core/language.h" -#include "../../module/planner.h" +#include "../../../module/planner.h" #include "../../gcode.h" #include "../../../module/motion.h" @@ -48,7 +48,7 @@ void GcodeSuite::G61(void) { #endif // No saved position? No axes being restored? - if (!TEST(saved_slots, slot) || !parser.seen("XYZ")) return; + if (!TEST(saved_slots[slot >> 3], slot & 0b00000111) || !parser.seen("XYZ")) return; // Apply any given feedrate over 0.0 const float fr = parser.linearval('F'); diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index 6dbf940ad..50092406c 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -111,7 +111,7 @@ xyze_pos_t destination; // {0} // G60/G61 Position Save and Return #if SAVED_POSITIONS - uint8_t saved_slots; + uint8_t saved_slots[(SAVED_POSITIONS + 7) >> 3]; xyz_pos_t stored_position[SAVED_POSITIONS]; #endif diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h index a30573e79..eafa5ca84 100644 --- a/Marlin/src/module/motion.h +++ b/Marlin/src/module/motion.h @@ -67,7 +67,7 @@ extern xyze_pos_t current_position, // High-level current tool position // G60/G61 Position Save and Return #if SAVED_POSITIONS - extern uint8_t saved_slots; + extern uint8_t saved_slots[(SAVED_POSITIONS + 7) >> 3]; extern xyz_pos_t stored_position[SAVED_POSITIONS]; #endif