add/install probe_errors_enabled in mc_probe_cycle

This commit is contained in:
Elijah Insua 2014-09-22 14:12:25 -07:00
parent b920838109
commit 3392a8b2c8
3 changed files with 10 additions and 2 deletions

View File

@ -289,7 +289,7 @@ void mc_homing_cycle()
uint8_t auto_start_state = sys.auto_start; // Store run state
// After syncing, check if probe is already triggered. If so, halt and issue alarm.
if (probe_get_state(mode)) {
if (probe_get_state(mode) && probe_errors_enabled(mode)) {
bit_true_atomic(sys.execute, EXEC_CRIT_EVENT);
protocol_execute_runtime();
}
@ -313,7 +313,9 @@ void mc_homing_cycle()
} while ((sys.state != STATE_IDLE) && (sys.state != STATE_QUEUED));
// Probing motion complete. If the probe has not been triggered, error out.
if (sys.probe_state & PROBE_ACTIVE) { bit_true_atomic(sys.execute, EXEC_CRIT_EVENT); }
if (sys.probe_state & PROBE_ACTIVE && probe_errors_enabled(mode)) {
bit_true_atomic(sys.execute, EXEC_CRIT_EVENT);
}
protocol_execute_runtime(); // Check and execute run-time commands
if (sys.abort) { return; } // Check for system abort

View File

@ -46,6 +46,10 @@ uint8_t probe_get_state(uint8_t mode) {
return mode ^ ((PROBE_PIN & PROBE_MASK) ^ probe_invert_mask);
}
uint8_t probe_errors_enabled(uint8_t mode) {
return !(mode & PROBE_NO_ERROR);
}
// Monitors probe pin state and records the system position when detected. Called by the
// stepper ISR per ISR tick.
// NOTE: This function must be extremely efficient as to not bog down the stepper ISR.

View File

@ -38,6 +38,8 @@ void probe_init();
// Returns probe pin state.
uint8_t probe_get_state(uint8_t mode);
uint8_t probe_errors_enabled(uint8_t mode);
// Monitors probe pin state and records the system position when detected. Called by the
// stepper ISR per ISR tick.
void probe_state_monitor();