|
|
@ -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); |
|
|
|