|
|
|
@ -246,10 +246,10 @@ void Endstops::poll() {
|
|
|
|
|
run_monitor(); // report changes in endstop status
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ENDSTOP_INTERRUPTS_FEATURE) && ENABLED(ENDSTOP_NOISE_FILTER)
|
|
|
|
|
if (endstop_poll_count) update();
|
|
|
|
|
#elif DISABLED(ENDSTOP_INTERRUPTS_FEATURE) || ENABLED(ENDSTOP_NOISE_FILTER)
|
|
|
|
|
#if DISABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
|
|
|
|
update();
|
|
|
|
|
#elif ENABLED(ENDSTOP_NOISE_FILTER)
|
|
|
|
|
if (endstop_poll_count) update();
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -275,7 +275,16 @@ void Endstops::not_homing() {
|
|
|
|
|
enabled = enabled_globally;
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
|
|
|
|
update();
|
|
|
|
|
// Still 'enabled'? Then endstops are always on and kept in sync.
|
|
|
|
|
// Otherwise reset 'live's variables to let axes move in both directions.
|
|
|
|
|
if (!enabled) {
|
|
|
|
|
#if ENABLED(ENDSTOP_NOISE_FILTER)
|
|
|
|
|
endstop_poll_count = validated_live_state = 0; // Stop filtering
|
|
|
|
|
#endif
|
|
|
|
|
live_state = 0;
|
|
|
|
|
}
|
|
|
|
|
//#else
|
|
|
|
|
// When in polling endstops are always kept in sync
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -666,7 +675,7 @@ void Endstops::update() {
|
|
|
|
|
if (triple_hit) { \
|
|
|
|
|
_ENDSTOP_HIT(AXIS1, MINMAX); \
|
|
|
|
|
/* if not performing home or if both endstops were trigged during homing... */ \
|
|
|
|
|
if (!stepper.separate_multi_axis || triple_hit == 0x7) \
|
|
|
|
|
if (!stepper.separate_multi_axis || triple_hit == 0b111) \
|
|
|
|
|
planner.endstop_triggered(_AXIS(AXIS1)); \
|
|
|
|
|
} \
|
|
|
|
|
}while(0)
|
|
|
|
|