Tweaks to endstops code

This commit is contained in:
Scott Lahteine 2018-11-30 14:25:43 -06:00
parent 3c58b16c9f
commit e874f9664c
2 changed files with 34 additions and 33 deletions

View file

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

View file

@ -1550,10 +1550,8 @@ void homeaxis(const AxisEnum axis) {
do_homing_move(axis, delta_endstop_adj[axis] - (MIN_STEPS_PER_SEGMENT + 1) * planner.steps_to_mm[axis] * Z_HOME_DIR); do_homing_move(axis, delta_endstop_adj[axis] - (MIN_STEPS_PER_SEGMENT + 1) * planner.steps_to_mm[axis] * Z_HOME_DIR);
} }
#else #else // CARTESIAN / CORE
// For cartesian/core machines,
// set the axis to its home position
set_axis_is_at_home(axis); set_axis_is_at_home(axis);
sync_plan_position(); sync_plan_position();