Browse Source

Shorthand for home-after-deactivate

pull/1/head
Scott Lahteine 5 years ago
parent
commit
49627069a5
  1. 14
      Marlin/src/gcode/calibrate/G28.cpp
  2. 10
      Marlin/src/module/motion.h

14
Marlin/src/gcode/calibrate/G28.cpp

@ -200,17 +200,9 @@ void GcodeSuite::G28(const bool always_home_all) {
}
#endif
if (parser.boolval('O')) {
if (
#if ENABLED(HOME_AFTER_DEACTIVATE)
all_axes_known() // homing needed anytime steppers deactivate
#else
all_axes_homed() // homing needed only if never homed
#endif
) {
if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("> homing not needed, skip\n<<< G28");
return;
}
if (!homing_needed() && parser.boolval('O')) {
if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("> homing not needed, skip\n<<< G28");
return;
}
// Wait for planner moves to finish!

10
Marlin/src/module/motion.h

@ -42,6 +42,16 @@ FORCE_INLINE bool all_axes_known() { return (axis_known_position & xyz_bits) ==
FORCE_INLINE void set_all_unhomed() { axis_homed = 0; }
FORCE_INLINE void set_all_unknown() { axis_known_position = 0; }
FORCE_INLINE bool homing_needed() {
return !(
#if ENABLED(HOME_AFTER_DEACTIVATE)
all_axes_known()
#else
all_axes_homed()
#endif
);
}
// Error margin to work around float imprecision
constexpr float slop = 0.0001;

Loading…
Cancel
Save