diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp index 873e046bb726bcfe617b72c97fb403668c0e8727..946b8405272a7bb11c7bd9b137499a1044ef2a81 100644 --- a/Marlin/src/Marlin.cpp +++ b/Marlin/src/Marlin.cpp @@ -179,10 +179,6 @@ volatile bool wait_for_heatup = true; millis_t max_inactive_time = 0, stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL; -#if ENABLED(Z_DUAL_ENDSTOPS) - float z_endstop_adj; -#endif - #if ENABLED(FILAMENT_RUNOUT_SENSOR) static bool filament_ran_out = false; #endif diff --git a/Marlin/src/Marlin.h b/Marlin/src/Marlin.h index e8e42d4f8d9d7e5649153da02ee200de949d4458..e28b09e4e60a5d9855845c28193c5838aa3cebd8 100644 --- a/Marlin/src/Marlin.h +++ b/Marlin/src/Marlin.h @@ -190,10 +190,6 @@ extern volatile bool wait_for_heatup; // Inactivity shutdown timer extern millis_t max_inactive_time, stepper_inactive_time; -#if ENABLED(Z_DUAL_ENDSTOPS) - extern float z_endstop_adj; -#endif - #if HAS_SERVOS #include "HAL/servo.h" extern HAL_SERVO_LIB servo[NUM_SERVOS]; diff --git a/Marlin/src/gcode/calibrate/M666.cpp b/Marlin/src/gcode/calibrate/M666.cpp index 2dcdc76b90c528654331137cb01c7b53d88a52ca..1e64565e651898b8ccbac9bfedaa5813ec7a78db 100644 --- a/Marlin/src/gcode/calibrate/M666.cpp +++ b/Marlin/src/gcode/calibrate/M666.cpp @@ -64,14 +64,14 @@ #elif ENABLED(Z_DUAL_ENDSTOPS) // !DELTA && ENABLED(Z_DUAL_ENDSTOPS) - #include "../../Marlin.h" // for z_endstop_adj + #include "../../module/endstops.h" /** * M666: For Z Dual Endstop setup, set z axis offset to the z2 axis. */ void GcodeSuite::M666() { - if (parser.seen('Z')) z_endstop_adj = parser.value_linear_units(); - SERIAL_ECHOLNPAIR("Z Endstop Adjustment set to (mm):", z_endstop_adj); + if (parser.seen('Z')) endstops.z_endstop_adj = parser.value_linear_units(); + SERIAL_ECHOLNPAIR("Z Endstop Adjustment set to (mm):", endstops.z_endstop_adj); } #endif diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/configuration_store.cpp index e32ce4fa7aa5f6e1103f9266161e2654a999346a..5edf67f874682969c56c44c6ad98eca1b31278ee 100644 --- a/Marlin/src/module/configuration_store.cpp +++ b/Marlin/src/module/configuration_store.cpp @@ -103,7 +103,7 @@ * --- M665 Z delta_tower_angle_trim[C] (float) is always 0.0 * * Z_DUAL_ENDSTOPS: 48 bytes - * 348 M666 Z z_endstop_adj (float) + * 348 M666 Z endstops.z_endstop_adj (float) * --- dummy data (float x11) * * ULTIPANEL: 6 bytes @@ -426,7 +426,7 @@ void MarlinSettings::postprocess() { dummy = 0.0f; for (uint8_t q = 3; q--;) EEPROM_WRITE(dummy); #elif ENABLED(Z_DUAL_ENDSTOPS) - EEPROM_WRITE(z_endstop_adj); // 1 float + EEPROM_WRITE(endstops.z_endstop_adj); // 1 float dummy = 0.0f; for (uint8_t q = 11; q--;) EEPROM_WRITE(dummy); #else @@ -811,7 +811,7 @@ void MarlinSettings::postprocess() { dummy = 0.0f; for (uint8_t q=3; q--;) EEPROM_READ(dummy); #elif ENABLED(Z_DUAL_ENDSTOPS) - EEPROM_READ(z_endstop_adj); + EEPROM_READ(endstops.z_endstop_adj); // 1 float dummy = 0.0f; for (uint8_t q=11; q--;) EEPROM_READ(dummy); #else @@ -1203,7 +1203,7 @@ void MarlinSettings::reset() { #elif ENABLED(Z_DUAL_ENDSTOPS) - z_endstop_adj = + endstops.z_endstop_adj = #ifdef Z_DUAL_ENDSTOPS_ADJUSTMENT Z_DUAL_ENDSTOPS_ADJUSTMENT #else @@ -1621,7 +1621,7 @@ void MarlinSettings::reset() { SERIAL_ECHOLNPGM("Z2 Endstop adjustment:"); } CONFIG_ECHO_START; - SERIAL_ECHOLNPAIR(" M666 Z", LINEAR_UNIT(z_endstop_adj)); + SERIAL_ECHOLNPAIR(" M666 Z", LINEAR_UNIT(endstops.z_endstop_adj)); #endif // DELTA #if ENABLED(ULTIPANEL) diff --git a/Marlin/src/module/endstops.cpp b/Marlin/src/module/endstops.cpp index 510f13df412162594f5a692a24f445e92da94a55..b194abd5df06f62ca5233b7a0398251adc3d3144 100644 --- a/Marlin/src/module/endstops.cpp +++ b/Marlin/src/module/endstops.cpp @@ -54,6 +54,10 @@ volatile char Endstops::endstop_hit_bits; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_P volatile bool Endstops::z_probe_enabled = false; #endif +#if ENABLED(Z_DUAL_ENDSTOPS) + float Endstops::z_endstop_adj; +#endif + /** * Class and Instance Methods */ diff --git a/Marlin/src/module/endstops.h b/Marlin/src/module/endstops.h index ddce0636073933a95d1d099cb9b315d2957af1ec..c0cef47655ffac75231e52bdbdcef0c4529968cc 100644 --- a/Marlin/src/module/endstops.h +++ b/Marlin/src/module/endstops.h @@ -50,6 +50,7 @@ class Endstops { static volatile char endstop_hit_bits; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_PROBE as BIT value #if ENABLED(Z_DUAL_ENDSTOPS) + static float z_endstop_adj; typedef uint16_t esbits_t; #else typedef byte esbits_t; diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index 8a99d99eb2c8380f6023efb9d437519cf491e5cf..35a97d25b12fb86ffa0cb0d6006af10b980581ac 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -1099,14 +1099,14 @@ void homeaxis(const AxisEnum axis) { #if ENABLED(Z_DUAL_ENDSTOPS) if (axis == Z_AXIS) { - float adj = FABS(z_endstop_adj); + float adj = FABS(endstops.z_endstop_adj); bool lockZ1; if (axis_home_dir > 0) { adj = -adj; - lockZ1 = (z_endstop_adj > 0); + lockZ1 = (endstops.z_endstop_adj > 0); } else - lockZ1 = (z_endstop_adj < 0); + lockZ1 = (endstops.z_endstop_adj < 0); if (lockZ1) stepper.set_z_lock(true); else stepper.set_z2_lock(true);