add probe_finalize to keep things DRY
this allows the PRB report to be valid when in "no errors" mode and the probe fails
This commit is contained in:
parent
5f1eece67d
commit
0beacbbb11
@ -320,6 +320,7 @@ void mc_homing_cycle()
|
|||||||
bit_true_atomic(sys.execute, EXEC_CRIT_EVENT);
|
bit_true_atomic(sys.execute, EXEC_CRIT_EVENT);
|
||||||
} else {
|
} else {
|
||||||
perform_pull_off = 0;
|
perform_pull_off = 0;
|
||||||
|
probe_finalize();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
protocol_execute_runtime(); // Check and execute run-time commands
|
protocol_execute_runtime(); // Check and execute run-time commands
|
||||||
|
10
probe.c
10
probe.c
@ -50,6 +50,12 @@ uint8_t probe_errors_enabled(uint8_t mode) {
|
|||||||
return !(mode & PROBE_NO_ERROR);
|
return !(mode & PROBE_NO_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void probe_finalize() {
|
||||||
|
sys.probe_state = PROBE_OFF;
|
||||||
|
memcpy(sys.probe_position, sys.position, sizeof(float)*N_AXIS);
|
||||||
|
bit_true(sys.execute, EXEC_FEED_HOLD);
|
||||||
|
}
|
||||||
|
|
||||||
// Monitors probe pin state and records the system position when detected. Called by the
|
// Monitors probe pin state and records the system position when detected. Called by the
|
||||||
// stepper ISR per ISR tick.
|
// stepper ISR per ISR tick.
|
||||||
// NOTE: This function must be extremely efficient as to not bog down the stepper ISR.
|
// NOTE: This function must be extremely efficient as to not bog down the stepper ISR.
|
||||||
@ -57,9 +63,7 @@ void probe_state_monitor()
|
|||||||
{
|
{
|
||||||
if (sys.probe_state != PROBE_OFF) {
|
if (sys.probe_state != PROBE_OFF) {
|
||||||
if (probe_get_state(sys.probe_state)) {
|
if (probe_get_state(sys.probe_state)) {
|
||||||
sys.probe_state = PROBE_OFF;
|
probe_finalize();
|
||||||
memcpy(sys.probe_position, sys.position, sizeof(float)*N_AXIS);
|
|
||||||
bit_true(sys.execute, EXEC_FEED_HOLD);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
probe.h
2
probe.h
@ -40,6 +40,8 @@ uint8_t probe_get_state(uint8_t mode);
|
|||||||
|
|
||||||
uint8_t probe_errors_enabled(uint8_t mode);
|
uint8_t probe_errors_enabled(uint8_t mode);
|
||||||
|
|
||||||
|
void probe_finalize();
|
||||||
|
|
||||||
// Monitors probe pin state and records the system position when detected. Called by the
|
// Monitors probe pin state and records the system position when detected. Called by the
|
||||||
// stepper ISR per ISR tick.
|
// stepper ISR per ISR tick.
|
||||||
void probe_state_monitor();
|
void probe_state_monitor();
|
||||||
|
Loading…
Reference in New Issue
Block a user