|
|
|
@ -775,99 +775,102 @@ void Endstops::update() {
|
|
|
|
|
static uint8_t local_LED_status = 0;
|
|
|
|
|
uint16_t live_state_local = 0;
|
|
|
|
|
|
|
|
|
|
#define ES_GET_STATE(S) if (READ(S##_PIN)) SBI(live_state_local, S)
|
|
|
|
|
|
|
|
|
|
#if HAS_X_MIN
|
|
|
|
|
if (READ(X_MIN_PIN)) SBI(live_state_local, X_MIN);
|
|
|
|
|
ES_GET_STATE(X_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_X_MAX
|
|
|
|
|
if (READ(X_MAX_PIN)) SBI(live_state_local, X_MAX);
|
|
|
|
|
ES_GET_STATE(X_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Y_MIN
|
|
|
|
|
if (READ(Y_MIN_PIN)) SBI(live_state_local, Y_MIN);
|
|
|
|
|
ES_GET_STATE(Y_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Y_MAX
|
|
|
|
|
if (READ(Y_MAX_PIN)) SBI(live_state_local, Y_MAX);
|
|
|
|
|
ES_GET_STATE(Y_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z_MIN
|
|
|
|
|
if (READ(Z_MIN_PIN)) SBI(live_state_local, Z_MIN);
|
|
|
|
|
ES_GET_STATE(Z_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z_MAX
|
|
|
|
|
if (READ(Z_MAX_PIN)) SBI(live_state_local, Z_MAX);
|
|
|
|
|
ES_GET_STATE(Z_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z_MIN_PROBE_PIN
|
|
|
|
|
if (READ(Z_MIN_PROBE_PIN)) SBI(live_state_local, Z_MIN_PROBE);
|
|
|
|
|
ES_GET_STATE(Z_MIN_PROBE);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_X2_MIN
|
|
|
|
|
if (READ(X2_MIN_PIN)) SBI(live_state_local, X2_MIN);
|
|
|
|
|
ES_GET_STATE(X2_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_X2_MAX
|
|
|
|
|
if (READ(X2_MAX_PIN)) SBI(live_state_local, X2_MAX);
|
|
|
|
|
ES_GET_STATE(X2_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Y2_MIN
|
|
|
|
|
if (READ(Y2_MIN_PIN)) SBI(live_state_local, Y2_MIN);
|
|
|
|
|
ES_GET_STATE(Y2_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Y2_MAX
|
|
|
|
|
if (READ(Y2_MAX_PIN)) SBI(live_state_local, Y2_MAX);
|
|
|
|
|
ES_GET_STATE(Y2_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z2_MIN
|
|
|
|
|
if (READ(Z2_MIN_PIN)) SBI(live_state_local, Z2_MIN);
|
|
|
|
|
ES_GET_STATE(Z2_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z2_MAX
|
|
|
|
|
if (READ(Z2_MAX_PIN)) SBI(live_state_local, Z2_MAX);
|
|
|
|
|
ES_GET_STATE(Z2_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z3_MIN
|
|
|
|
|
if (READ(Z3_MIN_PIN)) SBI(live_state_local, Z3_MIN);
|
|
|
|
|
ES_GET_STATE(Z3_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z3_MAX
|
|
|
|
|
if (READ(Z3_MAX_PIN)) SBI(live_state_local, Z3_MAX);
|
|
|
|
|
ES_GET_STATE(Z3_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
uint16_t endstop_change = live_state_local ^ old_live_state_local;
|
|
|
|
|
#define ES_REPORT_CHANGE(S) if (TEST(endstop_change, S)) SERIAL_ECHOPAIR(" " STRINGIFY(S) ":", TEST(live_state_local, S))
|
|
|
|
|
|
|
|
|
|
if (endstop_change) {
|
|
|
|
|
#if HAS_X_MIN
|
|
|
|
|
if (TEST(endstop_change, X_MIN)) SERIAL_ECHOPAIR(" X_MIN:", TEST(live_state_local, X_MIN));
|
|
|
|
|
ES_REPORT_CHANGE(X_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_X_MAX
|
|
|
|
|
if (TEST(endstop_change, X_MAX)) SERIAL_ECHOPAIR(" X_MAX:", TEST(live_state_local, X_MAX));
|
|
|
|
|
ES_REPORT_CHANGE(X_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Y_MIN
|
|
|
|
|
if (TEST(endstop_change, Y_MIN)) SERIAL_ECHOPAIR(" Y_MIN:", TEST(live_state_local, Y_MIN));
|
|
|
|
|
ES_REPORT_CHANGE(Y_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Y_MAX
|
|
|
|
|
if (TEST(endstop_change, Y_MAX)) SERIAL_ECHOPAIR(" Y_MAX:", TEST(live_state_local, Y_MAX));
|
|
|
|
|
ES_REPORT_CHANGE(Y_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z_MIN
|
|
|
|
|
if (TEST(endstop_change, Z_MIN)) SERIAL_ECHOPAIR(" Z_MIN:", TEST(live_state_local, Z_MIN));
|
|
|
|
|
ES_REPORT_CHANGE(Z_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z_MAX
|
|
|
|
|
if (TEST(endstop_change, Z_MAX)) SERIAL_ECHOPAIR(" Z_MAX:", TEST(live_state_local, Z_MAX));
|
|
|
|
|
ES_REPORT_CHANGE(Z_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z_MIN_PROBE_PIN
|
|
|
|
|
if (TEST(endstop_change, Z_MIN_PROBE)) SERIAL_ECHOPAIR(" PROBE:", TEST(live_state_local, Z_MIN_PROBE));
|
|
|
|
|
ES_REPORT_CHANGE(Z_MIN_PROBE);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_X2_MIN
|
|
|
|
|
if (TEST(endstop_change, X2_MIN)) SERIAL_ECHOPAIR(" X2_MIN:", TEST(live_state_local, X2_MIN));
|
|
|
|
|
ES_REPORT_CHANGE(X2_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_X2_MAX
|
|
|
|
|
if (TEST(endstop_change, X2_MAX)) SERIAL_ECHOPAIR(" X2_MAX:", TEST(live_state_local, X2_MAX));
|
|
|
|
|
ES_REPORT_CHANGE(X2_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Y2_MIN
|
|
|
|
|
if (TEST(endstop_change, Y2_MIN)) SERIAL_ECHOPAIR(" Y2_MIN:", TEST(live_state_local, Y2_MIN));
|
|
|
|
|
ES_REPORT_CHANGE(Y2_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Y2_MAX
|
|
|
|
|
if (TEST(endstop_change, Y2_MAX)) SERIAL_ECHOPAIR(" Y2_MAX:", TEST(live_state_local, Y2_MAX));
|
|
|
|
|
ES_REPORT_CHANGE(Y2_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z2_MIN
|
|
|
|
|
if (TEST(endstop_change, Z2_MIN)) SERIAL_ECHOPAIR(" Z2_MIN:", TEST(live_state_local, Z2_MIN));
|
|
|
|
|
ES_REPORT_CHANGE(Z2_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z2_MAX
|
|
|
|
|
if (TEST(endstop_change, Z2_MAX)) SERIAL_ECHOPAIR(" Z2_MAX:", TEST(live_state_local, Z2_MAX));
|
|
|
|
|
ES_REPORT_CHANGE(Z2_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z3_MIN
|
|
|
|
|
if (TEST(endstop_change, Z3_MIN)) SERIAL_ECHOPAIR(" Z3_MIN:", TEST(live_state_local, Z3_MIN));
|
|
|
|
|
ES_REPORT_CHANGE(Z3_MIN);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_Z3_MAX
|
|
|
|
|
if (TEST(endstop_change, Z3_MAX)) SERIAL_ECHOPAIR(" Z3_MAX:", TEST(live_state_local, Z3_MAX));
|
|
|
|
|
ES_REPORT_CHANGE(Z3_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
SERIAL_ECHOPGM("\n\n");
|
|
|
|
|
analogWrite(LED_PIN, local_LED_status);
|
|
|
|
|