Browse Source

🧑‍💻 Endstops preliminary work (#25780)

Scott Lahteine 1 year ago
parent
commit
85325f585a

+ 0 - 1
Marlin/Configuration_adv.h

@@ -815,7 +815,6 @@
   #define X1_MAX_POS X_BED_SIZE   // A max coordinate so the X1 carriage can't hit the parked X2 carriage
   #define X2_MIN_POS    80        // A min coordinate so the X2 carriage can't hit the parked X1 carriage
   #define X2_MAX_POS   353        // The max position of the X2 carriage, typically also the home position
-  #define X2_HOME_DIR    1        // Set to 1. The X2 carriage always homes to the max endstop position
   #define X2_HOME_POS X2_MAX_POS  // Default X2 home position. Set to X2_MAX_POS.
                                   // NOTE: For Dual X Carriage use M218 T1 Xn to override the X2_HOME_POS.
                                   // This allows recalibration of endstops distance without a rebuild.

+ 28 - 28
Marlin/src/HAL/AVR/endstop_interrupts.h

@@ -120,7 +120,7 @@ void pciSetup(const int8_t pin) {
 
 void setup_endstop_interrupts() {
   #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
-  #if HAS_X_MAX
+  #if USE_X_MAX
     #if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(X_MAX_PIN);
     #else
@@ -128,7 +128,7 @@ void setup_endstop_interrupts() {
       pciSetup(X_MAX_PIN);
     #endif
   #endif
-  #if HAS_X_MIN
+  #if USE_X_MIN
     #if (digitalPinToInterrupt(X_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(X_MIN_PIN);
     #else
@@ -136,7 +136,7 @@ void setup_endstop_interrupts() {
       pciSetup(X_MIN_PIN);
     #endif
   #endif
-  #if HAS_Y_MAX
+  #if USE_Y_MAX
     #if (digitalPinToInterrupt(Y_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Y_MAX_PIN);
     #else
@@ -144,7 +144,7 @@ void setup_endstop_interrupts() {
       pciSetup(Y_MAX_PIN);
     #endif
   #endif
-  #if HAS_Y_MIN
+  #if USE_Y_MIN
     #if (digitalPinToInterrupt(Y_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Y_MIN_PIN);
     #else
@@ -152,7 +152,7 @@ void setup_endstop_interrupts() {
       pciSetup(Y_MIN_PIN);
     #endif
   #endif
-  #if HAS_Z_MAX
+  #if USE_Z_MAX
     #if (digitalPinToInterrupt(Z_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Z_MAX_PIN);
     #else
@@ -168,14 +168,14 @@ void setup_endstop_interrupts() {
       pciSetup(Z_MIN_PIN);
     #endif
   #endif
-  #if HAS_I_MAX
+  #if USE_I_MAX
     #if (digitalPinToInterrupt(I_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(I_MAX_PIN);
     #else
       static_assert(digitalPinHasPCICR(I_MAX_PIN), "I_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
       pciSetup(I_MAX_PIN);
     #endif
-  #elif HAS_I_MIN
+  #elif USE_I_MIN
     #if (digitalPinToInterrupt(I_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(I_MIN_PIN);
     #else
@@ -183,14 +183,14 @@ void setup_endstop_interrupts() {
       pciSetup(I_MIN_PIN);
     #endif
   #endif
-  #if HAS_J_MAX
+  #if USE_J_MAX
     #if (digitalPinToInterrupt(J_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(J_MAX_PIN);
     #else
       static_assert(digitalPinHasPCICR(J_MAX_PIN), "J_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
       pciSetup(J_MAX_PIN);
     #endif
-  #elif HAS_J_MIN
+  #elif USE_J_MIN
     #if (digitalPinToInterrupt(J_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(J_MIN_PIN);
     #else
@@ -198,14 +198,14 @@ void setup_endstop_interrupts() {
       pciSetup(J_MIN_PIN);
     #endif
   #endif
-  #if HAS_K_MAX
+  #if USE_K_MAX
     #if (digitalPinToInterrupt(K_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(K_MAX_PIN);
     #else
       static_assert(digitalPinHasPCICR(K_MAX_PIN), "K_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
       pciSetup(K_MAX_PIN);
     #endif
-  #elif HAS_K_MIN
+  #elif USE_K_MIN
     #if (digitalPinToInterrupt(K_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(K_MIN_PIN);
     #else
@@ -213,14 +213,14 @@ void setup_endstop_interrupts() {
       pciSetup(K_MIN_PIN);
     #endif
   #endif
-  #if HAS_U_MAX
+  #if USE_U_MAX
     #if (digitalPinToInterrupt(U_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(U_MAX_PIN);
     #else
       static_assert(digitalPinHasPCICR(U_MAX_PIN), "U_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
       pciSetup(U_MAX_PIN);
     #endif
-  #elif HAS_U_MIN
+  #elif USE_U_MIN
     #if (digitalPinToInterrupt(U_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(U_MIN_PIN);
     #else
@@ -228,14 +228,14 @@ void setup_endstop_interrupts() {
       pciSetup(U_MIN_PIN);
     #endif
   #endif
-  #if HAS_V_MAX
+  #if USE_V_MAX
     #if (digitalPinToInterrupt(V_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(V_MAX_PIN);
     #else
       static_assert(digitalPinHasPCICR(V_MAX_PIN), "V_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
       pciSetup(V_MAX_PIN);
     #endif
-  #elif HAS_V_MIN
+  #elif USE_V_MIN
     #if (digitalPinToInterrupt(V_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(V_MIN_PIN);
     #else
@@ -243,14 +243,14 @@ void setup_endstop_interrupts() {
       pciSetup(V_MIN_PIN);
     #endif
   #endif
-  #if HAS_W_MAX
+  #if USE_W_MAX
     #if (digitalPinToInterrupt(W_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(W_MAX_PIN);
     #else
       static_assert(digitalPinHasPCICR(W_MAX_PIN), "W_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
       pciSetup(W_MAX_PIN);
     #endif
-  #elif HAS_W_MIN
+  #elif USE_W_MIN
     #if (digitalPinToInterrupt(W_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(W_MIN_PIN);
     #else
@@ -258,7 +258,7 @@ void setup_endstop_interrupts() {
       pciSetup(W_MIN_PIN);
     #endif
   #endif
-  #if HAS_X2_MAX
+  #if USE_X2_MAX
     #if (digitalPinToInterrupt(X2_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(X2_MAX_PIN);
     #else
@@ -266,7 +266,7 @@ void setup_endstop_interrupts() {
       pciSetup(X2_MAX_PIN);
     #endif
   #endif
-  #if HAS_X2_MIN
+  #if USE_X2_MIN
     #if (digitalPinToInterrupt(X2_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(X2_MIN_PIN);
     #else
@@ -274,7 +274,7 @@ void setup_endstop_interrupts() {
       pciSetup(X2_MIN_PIN);
     #endif
   #endif
-  #if HAS_Y2_MAX
+  #if USE_Y2_MAX
     #if (digitalPinToInterrupt(Y2_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Y2_MAX_PIN);
     #else
@@ -282,7 +282,7 @@ void setup_endstop_interrupts() {
       pciSetup(Y2_MAX_PIN);
     #endif
   #endif
-  #if HAS_Y2_MIN
+  #if USE_Y2_MIN
     #if (digitalPinToInterrupt(Y2_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Y2_MIN_PIN);
     #else
@@ -290,7 +290,7 @@ void setup_endstop_interrupts() {
       pciSetup(Y2_MIN_PIN);
     #endif
   #endif
-  #if HAS_Z2_MAX
+  #if USE_Z2_MAX
     #if (digitalPinToInterrupt(Z2_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Z2_MAX_PIN);
     #else
@@ -298,7 +298,7 @@ void setup_endstop_interrupts() {
       pciSetup(Z2_MAX_PIN);
     #endif
   #endif
-  #if HAS_Z2_MIN
+  #if USE_Z2_MIN
     #if (digitalPinToInterrupt(Z2_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Z2_MIN_PIN);
     #else
@@ -306,7 +306,7 @@ void setup_endstop_interrupts() {
       pciSetup(Z2_MIN_PIN);
     #endif
   #endif
-  #if HAS_Z3_MAX
+  #if USE_Z3_MAX
     #if (digitalPinToInterrupt(Z3_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Z3_MAX_PIN);
     #else
@@ -314,7 +314,7 @@ void setup_endstop_interrupts() {
       pciSetup(Z3_MAX_PIN);
     #endif
   #endif
-  #if HAS_Z3_MIN
+  #if USE_Z3_MIN
     #if (digitalPinToInterrupt(Z3_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Z3_MIN_PIN);
     #else
@@ -322,7 +322,7 @@ void setup_endstop_interrupts() {
       pciSetup(Z3_MIN_PIN);
     #endif
   #endif
-  #if HAS_Z4_MAX
+  #if USE_Z4_MAX
     #if (digitalPinToInterrupt(Z4_MAX_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Z4_MAX_PIN);
     #else
@@ -330,7 +330,7 @@ void setup_endstop_interrupts() {
       pciSetup(Z4_MAX_PIN);
     #endif
   #endif
-  #if HAS_Z4_MIN
+  #if USE_Z4_MIN
     #if (digitalPinToInterrupt(Z4_MIN_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Z4_MIN_PIN);
     #else
@@ -338,7 +338,7 @@ void setup_endstop_interrupts() {
       pciSetup(Z4_MIN_PIN);
     #endif
   #endif
-  #if HAS_Z_MIN_PROBE_PIN
+  #if USE_Z_MIN_PROBE
     #if (digitalPinToInterrupt(Z_MIN_PROBE_PIN) != NOT_AN_INTERRUPT)
       _ATTACH(Z_MIN_PROBE_PIN);
     #else

+ 29 - 29
Marlin/src/HAL/DUE/endstop_interrupts.h

@@ -47,33 +47,33 @@ void endstop_ISR() { endstops.update(); }
 
 void setup_endstop_interrupts() {
   #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
-  TERN_(HAS_X_MAX,           _ATTACH(X_MAX_PIN));
-  TERN_(HAS_X_MIN,           _ATTACH(X_MIN_PIN));
-  TERN_(HAS_Y_MAX,           _ATTACH(Y_MAX_PIN));
-  TERN_(HAS_Y_MIN,           _ATTACH(Y_MIN_PIN));
-  TERN_(HAS_Z_MAX,           _ATTACH(Z_MAX_PIN));
-  TERN_(HAS_Z_MIN_PIN,       _ATTACH(Z_MIN_PIN));
-  TERN_(HAS_X2_MAX,          _ATTACH(X2_MAX_PIN));
-  TERN_(HAS_X2_MIN,          _ATTACH(X2_MIN_PIN));
-  TERN_(HAS_Y2_MAX,          _ATTACH(Y2_MAX_PIN));
-  TERN_(HAS_Y2_MIN,          _ATTACH(Y2_MIN_PIN));
-  TERN_(HAS_Z2_MAX,          _ATTACH(Z2_MAX_PIN));
-  TERN_(HAS_Z2_MIN,          _ATTACH(Z2_MIN_PIN));
-  TERN_(HAS_Z3_MAX,          _ATTACH(Z3_MAX_PIN));
-  TERN_(HAS_Z3_MIN,          _ATTACH(Z3_MIN_PIN));
-  TERN_(HAS_Z4_MAX,          _ATTACH(Z4_MAX_PIN));
-  TERN_(HAS_Z4_MIN,          _ATTACH(Z4_MIN_PIN));
-  TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN));
-  TERN_(HAS_I_MAX,           _ATTACH(I_MAX_PIN));
-  TERN_(HAS_I_MIN,           _ATTACH(I_MIN_PIN));
-  TERN_(HAS_J_MAX,           _ATTACH(J_MAX_PIN));
-  TERN_(HAS_J_MIN,           _ATTACH(J_MIN_PIN));
-  TERN_(HAS_K_MAX,           _ATTACH(K_MAX_PIN));
-  TERN_(HAS_K_MIN,           _ATTACH(K_MIN_PIN));
-  TERN_(HAS_U_MAX,           _ATTACH(U_MAX_PIN));
-  TERN_(HAS_U_MIN,           _ATTACH(U_MIN_PIN));
-  TERN_(HAS_V_MAX,           _ATTACH(V_MAX_PIN));
-  TERN_(HAS_V_MIN,           _ATTACH(V_MIN_PIN));
-  TERN_(HAS_W_MAX,           _ATTACH(W_MAX_PIN));
-  TERN_(HAS_W_MIN,           _ATTACH(W_MIN_PIN));
+  TERN_(USE_X_MAX,       _ATTACH(X_MAX_PIN));
+  TERN_(USE_X_MIN,       _ATTACH(X_MIN_PIN));
+  TERN_(USE_Y_MAX,       _ATTACH(Y_MAX_PIN));
+  TERN_(USE_Y_MIN,       _ATTACH(Y_MIN_PIN));
+  TERN_(USE_Z_MAX,       _ATTACH(Z_MAX_PIN));
+  TERN_(HAS_Z_MIN_PIN,   _ATTACH(Z_MIN_PIN));
+  TERN_(USE_X2_MAX,      _ATTACH(X2_MAX_PIN));
+  TERN_(USE_X2_MIN,      _ATTACH(X2_MIN_PIN));
+  TERN_(USE_Y2_MAX,      _ATTACH(Y2_MAX_PIN));
+  TERN_(USE_Y2_MIN,      _ATTACH(Y2_MIN_PIN));
+  TERN_(USE_Z2_MAX,      _ATTACH(Z2_MAX_PIN));
+  TERN_(USE_Z2_MIN,      _ATTACH(Z2_MIN_PIN));
+  TERN_(USE_Z3_MAX,      _ATTACH(Z3_MAX_PIN));
+  TERN_(USE_Z3_MIN,      _ATTACH(Z3_MIN_PIN));
+  TERN_(USE_Z4_MAX,      _ATTACH(Z4_MAX_PIN));
+  TERN_(USE_Z4_MIN,      _ATTACH(Z4_MIN_PIN));
+  TERN_(USE_Z_MIN_PROBE, _ATTACH(Z_MIN_PROBE_PIN));
+  TERN_(USE_I_MAX,       _ATTACH(I_MAX_PIN));
+  TERN_(USE_I_MIN,       _ATTACH(I_MIN_PIN));
+  TERN_(USE_J_MAX,       _ATTACH(J_MAX_PIN));
+  TERN_(USE_J_MIN,       _ATTACH(J_MIN_PIN));
+  TERN_(USE_K_MAX,       _ATTACH(K_MAX_PIN));
+  TERN_(USE_K_MIN,       _ATTACH(K_MIN_PIN));
+  TERN_(USE_U_MAX,       _ATTACH(U_MAX_PIN));
+  TERN_(USE_U_MIN,       _ATTACH(U_MIN_PIN));
+  TERN_(USE_V_MAX,       _ATTACH(V_MAX_PIN));
+  TERN_(USE_V_MIN,       _ATTACH(V_MIN_PIN));
+  TERN_(USE_W_MAX,       _ATTACH(W_MAX_PIN));
+  TERN_(USE_W_MIN,       _ATTACH(W_MIN_PIN));
 }

+ 29 - 29
Marlin/src/HAL/ESP32/endstop_interrupts.h

@@ -42,33 +42,33 @@ void ICACHE_RAM_ATTR endstop_ISR() { endstops.update(); }
 
 void setup_endstop_interrupts() {
   #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
-  TERN_(HAS_X_MAX,           _ATTACH(X_MAX_PIN));
-  TERN_(HAS_X_MIN,           _ATTACH(X_MIN_PIN));
-  TERN_(HAS_Y_MAX,           _ATTACH(Y_MAX_PIN));
-  TERN_(HAS_Y_MIN,           _ATTACH(Y_MIN_PIN));
-  TERN_(HAS_Z_MAX,           _ATTACH(Z_MAX_PIN));
-  TERN_(HAS_Z_MIN_PIN,       _ATTACH(Z_MIN_PIN));
-  TERN_(HAS_X2_MAX,          _ATTACH(X2_MAX_PIN));
-  TERN_(HAS_X2_MIN,          _ATTACH(X2_MIN_PIN));
-  TERN_(HAS_Y2_MAX,          _ATTACH(Y2_MAX_PIN));
-  TERN_(HAS_Y2_MIN,          _ATTACH(Y2_MIN_PIN));
-  TERN_(HAS_Z2_MAX,          _ATTACH(Z2_MAX_PIN));
-  TERN_(HAS_Z2_MIN,          _ATTACH(Z2_MIN_PIN));
-  TERN_(HAS_Z3_MAX,          _ATTACH(Z3_MAX_PIN));
-  TERN_(HAS_Z3_MIN,          _ATTACH(Z3_MIN_PIN));
-  TERN_(HAS_Z4_MAX,          _ATTACH(Z4_MAX_PIN));
-  TERN_(HAS_Z4_MIN,          _ATTACH(Z4_MIN_PIN));
-  TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN));
-  TERN_(HAS_I_MAX,           _ATTACH(I_MAX_PIN));
-  TERN_(HAS_I_MIN,           _ATTACH(I_MIN_PIN));
-  TERN_(HAS_J_MAX,           _ATTACH(J_MAX_PIN));
-  TERN_(HAS_J_MIN,           _ATTACH(J_MIN_PIN));
-  TERN_(HAS_K_MAX,           _ATTACH(K_MAX_PIN));
-  TERN_(HAS_K_MIN,           _ATTACH(K_MIN_PIN));
-  TERN_(HAS_U_MAX,           _ATTACH(U_MAX_PIN));
-  TERN_(HAS_U_MIN,           _ATTACH(U_MIN_PIN));
-  TERN_(HAS_V_MAX,           _ATTACH(V_MAX_PIN));
-  TERN_(HAS_V_MIN,           _ATTACH(V_MIN_PIN));
-  TERN_(HAS_W_MAX,           _ATTACH(W_MAX_PIN));
-  TERN_(HAS_W_MIN,           _ATTACH(W_MIN_PIN));
+  TERN_(USE_X_MAX,       _ATTACH(X_MAX_PIN));
+  TERN_(USE_X_MIN,       _ATTACH(X_MIN_PIN));
+  TERN_(USE_Y_MAX,       _ATTACH(Y_MAX_PIN));
+  TERN_(USE_Y_MIN,       _ATTACH(Y_MIN_PIN));
+  TERN_(USE_Z_MAX,       _ATTACH(Z_MAX_PIN));
+  TERN_(HAS_Z_MIN_PIN,   _ATTACH(Z_MIN_PIN));
+  TERN_(USE_X2_MAX,      _ATTACH(X2_MAX_PIN));
+  TERN_(USE_X2_MIN,      _ATTACH(X2_MIN_PIN));
+  TERN_(USE_Y2_MAX,      _ATTACH(Y2_MAX_PIN));
+  TERN_(USE_Y2_MIN,      _ATTACH(Y2_MIN_PIN));
+  TERN_(USE_Z2_MAX,      _ATTACH(Z2_MAX_PIN));
+  TERN_(USE_Z2_MIN,      _ATTACH(Z2_MIN_PIN));
+  TERN_(USE_Z3_MAX,      _ATTACH(Z3_MAX_PIN));
+  TERN_(USE_Z3_MIN,      _ATTACH(Z3_MIN_PIN));
+  TERN_(USE_Z4_MAX,      _ATTACH(Z4_MAX_PIN));
+  TERN_(USE_Z4_MIN,      _ATTACH(Z4_MIN_PIN));
+  TERN_(USE_Z_MIN_PROBE, _ATTACH(Z_MIN_PROBE_PIN));
+  TERN_(USE_I_MAX,       _ATTACH(I_MAX_PIN));
+  TERN_(USE_I_MIN,       _ATTACH(I_MIN_PIN));
+  TERN_(USE_J_MAX,       _ATTACH(J_MAX_PIN));
+  TERN_(USE_J_MIN,       _ATTACH(J_MIN_PIN));
+  TERN_(USE_K_MAX,       _ATTACH(K_MAX_PIN));
+  TERN_(USE_K_MIN,       _ATTACH(K_MIN_PIN));
+  TERN_(USE_U_MAX,       _ATTACH(U_MAX_PIN));
+  TERN_(USE_U_MIN,       _ATTACH(U_MIN_PIN));
+  TERN_(USE_V_MAX,       _ATTACH(V_MAX_PIN));
+  TERN_(USE_V_MIN,       _ATTACH(V_MIN_PIN));
+  TERN_(USE_W_MAX,       _ATTACH(W_MAX_PIN));
+  TERN_(USE_W_MIN,       _ATTACH(W_MIN_PIN));
 }

+ 28 - 28
Marlin/src/HAL/LPC1768/endstop_interrupts.h

@@ -44,31 +44,31 @@ void setup_endstop_interrupts() {
   #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
   #define LPC1768_PIN_INTERRUPT_M(pin) ((pin >> 0x5 & 0x7) == 0 || (pin >> 0x5 & 0x7) == 2)
 
-  #if HAS_X_MAX
+  #if USE_X_MAX
     #if !LPC1768_PIN_INTERRUPT_M(X_MAX_PIN)
       #error "X_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X_MAX_PIN);
   #endif
-  #if HAS_X_MIN
+  #if USE_X_MIN
     #if !LPC1768_PIN_INTERRUPT_M(X_MIN_PIN)
       #error "X_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X_MIN_PIN);
   #endif
-  #if HAS_Y_MAX
+  #if USE_Y_MAX
     #if !LPC1768_PIN_INTERRUPT_M(Y_MAX_PIN)
       #error "Y_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y_MAX_PIN);
   #endif
-  #if HAS_Y_MIN
+  #if USE_Y_MIN
     #if !LPC1768_PIN_INTERRUPT_M(Y_MIN_PIN)
       #error "Y_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y_MIN_PIN);
   #endif
-  #if HAS_Z_MAX
+  #if USE_Z_MAX
     #if !LPC1768_PIN_INTERRUPT_M(Z_MAX_PIN)
       #error "Z_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
@@ -80,133 +80,133 @@ void setup_endstop_interrupts() {
     #endif
      _ATTACH(Z_MIN_PIN);
   #endif
-  #if HAS_X2_MAX
+  #if USE_X2_MAX
     #if !LPC1768_PIN_INTERRUPT_M(X2_MAX_PIN)
       #error "X2_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X2_MAX_PIN);
   #endif
-  #if HAS_X2_MIN
+  #if USE_X2_MIN
     #if !LPC1768_PIN_INTERRUPT_M(X2_MIN_PIN)
       #error "X2_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X2_MIN_PIN);
   #endif
-  #if HAS_Y2_MAX
+  #if USE_Y2_MAX
     #if !LPC1768_PIN_INTERRUPT_M(Y2_MAX_PIN)
       #error "Y2_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y2_MAX_PIN);
   #endif
-  #if HAS_Y2_MIN
+  #if USE_Y2_MIN
     #if !LPC1768_PIN_INTERRUPT_M(Y2_MIN_PIN)
       #error "Y2_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y2_MIN_PIN);
   #endif
-  #if HAS_Z2_MAX
+  #if USE_Z2_MAX
     #if !LPC1768_PIN_INTERRUPT_M(Z2_MAX_PIN)
       #error "Z2_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z2_MAX_PIN);
   #endif
-  #if HAS_Z2_MIN
+  #if USE_Z2_MIN
     #if !LPC1768_PIN_INTERRUPT_M(Z2_MIN_PIN)
       #error "Z2_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z2_MIN_PIN);
   #endif
-  #if HAS_Z3_MAX
+  #if USE_Z3_MAX
     #if !LPC1768_PIN_INTERRUPT_M(Z3_MAX_PIN)
       #error "Z3_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z3_MAX_PIN);
   #endif
-  #if HAS_Z3_MIN
+  #if USE_Z3_MIN
     #if !LPC1768_PIN_INTERRUPT_M(Z3_MIN_PIN)
       #error "Z3_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z3_MIN_PIN);
   #endif
-  #if HAS_Z4_MAX
+  #if USE_Z4_MAX
     #if !LPC1768_PIN_INTERRUPT_M(Z4_MAX_PIN)
       #error "Z4_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z4_MAX_PIN);
   #endif
-  #if HAS_Z4_MIN
+  #if USE_Z4_MIN
     #if !LPC1768_PIN_INTERRUPT_M(Z4_MIN_PIN)
       #error "Z4_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z4_MIN_PIN);
   #endif
-  #if HAS_Z_MIN_PROBE_PIN
+  #if USE_Z_MIN_PROBE
     #if !LPC1768_PIN_INTERRUPT_M(Z_MIN_PROBE_PIN)
       #error "Z_MIN_PROBE_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z_MIN_PROBE_PIN);
   #endif
-  #if HAS_I_MAX
+  #if USE_I_MAX
     #if !LPC1768_PIN_INTERRUPT_M(I_MAX_PIN)
       #error "I_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(I_MAX_PIN);
-  #elif HAS_I_MIN
+  #elif USE_I_MIN
     #if !LPC1768_PIN_INTERRUPT_M(I_MIN_PIN)
       #error "I_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(I_MIN_PIN);
   #endif
-  #if HAS_J_MAX
+  #if USE_J_MAX
     #if !LPC1768_PIN_INTERRUPT_M(J_MAX_PIN)
       #error "J_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(J_MAX_PIN);
-  #elif HAS_J_MIN
+  #elif USE_J_MIN
     #if !LPC1768_PIN_INTERRUPT_M(J_MIN_PIN)
       #error "J_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(J_MIN_PIN);
   #endif
-  #if HAS_K_MAX
+  #if USE_K_MAX
     #if !LPC1768_PIN_INTERRUPT_M(K_MAX_PIN)
       #error "K_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(K_MAX_PIN);
-  #elif HAS_K_MIN
+  #elif USE_K_MIN
     #if !LPC1768_PIN_INTERRUPT_M(K_MIN_PIN)
       #error "K_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(K_MIN_PIN);
   #endif
-  #if HAS_U_MAX
+  #if USE_U_MAX
     #if !LPC1768_PIN_INTERRUPT_M(U_MAX_PIN)
       #error "U_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(U_MAX_PIN);
-  #elif HAS_U_MIN
+  #elif USE_U_MIN
     #if !LPC1768_PIN_INTERRUPT_M(U_MIN_PIN)
       #error "U_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(U_MIN_PIN);
   #endif
-  #if HAS_V_MAX
+  #if USE_V_MAX
     #if !LPC1768_PIN_INTERRUPT_M(V_MAX_PIN)
       #error "V_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(V_MAX_PIN);
-  #elif HAS_V_MIN
+  #elif USE_V_MIN
     #if !LPC1768_PIN_INTERRUPT_M(V_MIN_PIN)
       #error "V_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(V_MIN_PIN);
   #endif
-  #if HAS_W_MAX
+  #if USE_W_MAX
     #if !LPC1768_PIN_INTERRUPT_M(W_MAX_PIN)
       #error "W_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(W_MAX_PIN);
-  #elif HAS_W_MIN
+  #elif USE_W_MIN
     #if !LPC1768_PIN_INTERRUPT_M(W_MIN_PIN)
       #error "W_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif

+ 2 - 2
Marlin/src/HAL/LPC1768/inc/SanityCheck.h

@@ -150,7 +150,7 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o
     #error "Serial port pins (2) conflict with other pins!"
   #elif Y_HOME_TO_MIN && IS_TX2(Y_STOP_PIN)
     #error "Serial port pins (2) conflict with Y endstop pin!"
-  #elif USES_Z_MIN_PROBE_PIN && IS_TX2(Z_MIN_PROBE_PIN)
+  #elif USE_Z_MIN_PROBE && IS_TX2(Z_MIN_PROBE_PIN)
     #error "Serial port pins (2) conflict with probe pin!"
   #elif ANY_TX(2, X_ENABLE_PIN, Y_ENABLE_PIN) || ANY_RX(2, X_DIR_PIN, Y_DIR_PIN)
     #error "Serial port pins (2) conflict with X/Y stepper pins!"
@@ -241,7 +241,7 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o
     #define PIN_IS_SCL2(P) (P##_PIN == P0_11)
     #if PIN_IS_SDA2(Y_STOP)
       #error "i2c SDA2 overlaps with Y endstop pin!"
-    #elif USES_Z_MIN_PROBE_PIN && PIN_IS_SDA2(Z_MIN_PROBE)
+    #elif USE_Z_MIN_PROBE && PIN_IS_SDA2(Z_MIN_PROBE)
       #error "i2c SDA2 overlaps with Z probe pin!"
     #elif PIN_IS_SDA2(X_ENABLE) || PIN_IS_SDA2(Y_ENABLE)
       #error "i2c SDA2 overlaps with X/Y ENABLE pin!"

+ 56 - 56
Marlin/src/HAL/SAMD21/endstop_interrupts.h

@@ -54,35 +54,35 @@
 #include "../../module/endstops.h"
 
 #define MATCH_EILINE(P1,P2) (P1 != P2 && PIN_TO_EILINE(P1) == PIN_TO_EILINE(P2))
-#define MATCH_X_MAX_EILINE(P)  TERN0(HAS_X_MAX,     DEFER4(MATCH_EILINE)(P, X_MAX_PIN))
-#define MATCH_X_MIN_EILINE(P)  TERN0(HAS_X_MIN,     DEFER4(MATCH_EILINE)(P, X_MIN_PIN))
-#define MATCH_Y_MAX_EILINE(P)  TERN0(HAS_Y_MAX,     DEFER4(MATCH_EILINE)(P, Y_MAX_PIN))
-#define MATCH_Y_MIN_EILINE(P)  TERN0(HAS_Y_MIN,     DEFER4(MATCH_EILINE)(P, Y_MIN_PIN))
-#define MATCH_Z_MAX_EILINE(P)  TERN0(HAS_Z_MAX,     DEFER4(MATCH_EILINE)(P, Z_MAX_PIN))
+#define MATCH_X_MAX_EILINE(P)  TERN0(USE_X_MAX,     DEFER4(MATCH_EILINE)(P, X_MAX_PIN))
+#define MATCH_X_MIN_EILINE(P)  TERN0(USE_X_MIN,     DEFER4(MATCH_EILINE)(P, X_MIN_PIN))
+#define MATCH_Y_MAX_EILINE(P)  TERN0(USE_Y_MAX,     DEFER4(MATCH_EILINE)(P, Y_MAX_PIN))
+#define MATCH_Y_MIN_EILINE(P)  TERN0(USE_Y_MIN,     DEFER4(MATCH_EILINE)(P, Y_MIN_PIN))
+#define MATCH_Z_MAX_EILINE(P)  TERN0(USE_Z_MAX,     DEFER4(MATCH_EILINE)(P, Z_MAX_PIN))
 #define MATCH_Z_MIN_EILINE(P)  TERN0(HAS_Z_MIN_PIN, DEFER4(MATCH_EILINE)(P, Z_MIN_PIN))
-#define MATCH_I_MAX_EILINE(P)  TERN0(HAS_I_MAX,     DEFER4(MATCH_EILINE)(P, I_MAX_PIN))
-#define MATCH_I_MIN_EILINE(P)  TERN0(HAS_I_MIN,     DEFER4(MATCH_EILINE)(P, I_MIN_PIN))
-#define MATCH_J_MAX_EILINE(P)  TERN0(HAS_J_MAX,     DEFER4(MATCH_EILINE)(P, J_MAX_PIN))
-#define MATCH_J_MIN_EILINE(P)  TERN0(HAS_J_MIN,     DEFER4(MATCH_EILINE)(P, J_MIN_PIN))
-#define MATCH_K_MAX_EILINE(P)  TERN0(HAS_K_MAX,     DEFER4(MATCH_EILINE)(P, K_MAX_PIN))
-#define MATCH_K_MIN_EILINE(P)  TERN0(HAS_K_MIN,     DEFER4(MATCH_EILINE)(P, K_MIN_PIN))
-#define MATCH_U_MAX_EILINE(P)  TERN0(HAS_U_MAX,     DEFER4(MATCH_EILINE)(P, U_MAX_PIN))
-#define MATCH_U_MIN_EILINE(P)  TERN0(HAS_U_MIN,     DEFER4(MATCH_EILINE)(P, U_MIN_PIN))
-#define MATCH_V_MAX_EILINE(P)  TERN0(HAS_V_MAX,     DEFER4(MATCH_EILINE)(P, V_MAX_PIN))
-#define MATCH_V_MIN_EILINE(P)  TERN0(HAS_V_MIN,     DEFER4(MATCH_EILINE)(P, V_MIN_PIN))
-#define MATCH_W_MAX_EILINE(P)  TERN0(HAS_W_MAX,     DEFER4(MATCH_EILINE)(P, W_MAX_PIN))
-#define MATCH_W_MIN_EILINE(P)  TERN0(HAS_W_MIN,     DEFER4(MATCH_EILINE)(P, W_MIN_PIN))
-#define MATCH_X2_MAX_EILINE(P) TERN0(HAS_X2_MAX,    DEFER4(MATCH_EILINE)(P, X2_MAX_PIN))
-#define MATCH_X2_MIN_EILINE(P) TERN0(HAS_X2_MIN,    DEFER4(MATCH_EILINE)(P, X2_MIN_PIN))
-#define MATCH_Y2_MAX_EILINE(P) TERN0(HAS_Y2_MAX,    DEFER4(MATCH_EILINE)(P, Y2_MAX_PIN))
-#define MATCH_Y2_MIN_EILINE(P) TERN0(HAS_Y2_MIN,    DEFER4(MATCH_EILINE)(P, Y2_MIN_PIN))
-#define MATCH_Z2_MAX_EILINE(P) TERN0(HAS_Z2_MAX,    DEFER4(MATCH_EILINE)(P, Z2_MAX_PIN))
-#define MATCH_Z2_MIN_EILINE(P) TERN0(HAS_Z2_MIN,    DEFER4(MATCH_EILINE)(P, Z2_MIN_PIN))
-#define MATCH_Z3_MAX_EILINE(P) TERN0(HAS_Z3_MAX,    DEFER4(MATCH_EILINE)(P, Z3_MAX_PIN))
-#define MATCH_Z3_MIN_EILINE(P) TERN0(HAS_Z3_MIN,    DEFER4(MATCH_EILINE)(P, Z3_MIN_PIN))
-#define MATCH_Z4_MAX_EILINE(P) TERN0(HAS_Z4_MAX,    DEFER4(MATCH_EILINE)(P, Z4_MAX_PIN))
-#define MATCH_Z4_MIN_EILINE(P) TERN0(HAS_Z4_MIN,    DEFER4(MATCH_EILINE)(P, Z4_MIN_PIN))
-#define MATCH_Z_MIN_PROBE_EILINE(P) TERN0(HAS_Z_MIN_PROBE_PIN, DEFER4(MATCH_EILINE)(P, Z_MIN_PROBE_PIN))
+#define MATCH_I_MAX_EILINE(P)  TERN0(USE_I_MAX,     DEFER4(MATCH_EILINE)(P, I_MAX_PIN))
+#define MATCH_I_MIN_EILINE(P)  TERN0(USE_I_MIN,     DEFER4(MATCH_EILINE)(P, I_MIN_PIN))
+#define MATCH_J_MAX_EILINE(P)  TERN0(USE_J_MAX,     DEFER4(MATCH_EILINE)(P, J_MAX_PIN))
+#define MATCH_J_MIN_EILINE(P)  TERN0(USE_J_MIN,     DEFER4(MATCH_EILINE)(P, J_MIN_PIN))
+#define MATCH_K_MAX_EILINE(P)  TERN0(USE_K_MAX,     DEFER4(MATCH_EILINE)(P, K_MAX_PIN))
+#define MATCH_K_MIN_EILINE(P)  TERN0(USE_K_MIN,     DEFER4(MATCH_EILINE)(P, K_MIN_PIN))
+#define MATCH_U_MAX_EILINE(P)  TERN0(USE_U_MAX,     DEFER4(MATCH_EILINE)(P, U_MAX_PIN))
+#define MATCH_U_MIN_EILINE(P)  TERN0(USE_U_MIN,     DEFER4(MATCH_EILINE)(P, U_MIN_PIN))
+#define MATCH_V_MAX_EILINE(P)  TERN0(USE_V_MAX,     DEFER4(MATCH_EILINE)(P, V_MAX_PIN))
+#define MATCH_V_MIN_EILINE(P)  TERN0(USE_V_MIN,     DEFER4(MATCH_EILINE)(P, V_MIN_PIN))
+#define MATCH_W_MAX_EILINE(P)  TERN0(USE_W_MAX,     DEFER4(MATCH_EILINE)(P, W_MAX_PIN))
+#define MATCH_W_MIN_EILINE(P)  TERN0(USE_W_MIN,     DEFER4(MATCH_EILINE)(P, W_MIN_PIN))
+#define MATCH_X2_MAX_EILINE(P) TERN0(USE_X2_MAX,    DEFER4(MATCH_EILINE)(P, X2_MAX_PIN))
+#define MATCH_X2_MIN_EILINE(P) TERN0(USE_X2_MIN,    DEFER4(MATCH_EILINE)(P, X2_MIN_PIN))
+#define MATCH_Y2_MAX_EILINE(P) TERN0(USE_Y2_MAX,    DEFER4(MATCH_EILINE)(P, Y2_MAX_PIN))
+#define MATCH_Y2_MIN_EILINE(P) TERN0(USE_Y2_MIN,    DEFER4(MATCH_EILINE)(P, Y2_MIN_PIN))
+#define MATCH_Z2_MAX_EILINE(P) TERN0(USE_Z2_MAX,    DEFER4(MATCH_EILINE)(P, Z2_MAX_PIN))
+#define MATCH_Z2_MIN_EILINE(P) TERN0(USE_Z2_MIN,    DEFER4(MATCH_EILINE)(P, Z2_MIN_PIN))
+#define MATCH_Z3_MAX_EILINE(P) TERN0(USE_Z3_MAX,    DEFER4(MATCH_EILINE)(P, Z3_MAX_PIN))
+#define MATCH_Z3_MIN_EILINE(P) TERN0(USE_Z3_MIN,    DEFER4(MATCH_EILINE)(P, Z3_MIN_PIN))
+#define MATCH_Z4_MAX_EILINE(P) TERN0(USE_Z4_MAX,    DEFER4(MATCH_EILINE)(P, Z4_MAX_PIN))
+#define MATCH_Z4_MIN_EILINE(P) TERN0(USE_Z4_MIN,    DEFER4(MATCH_EILINE)(P, Z4_MIN_PIN))
+#define MATCH_Z_MIN_PROBE_EILINE(P) TERN0(USE_Z_MIN_PROBE, DEFER4(MATCH_EILINE)(P, Z_MIN_PROBE_PIN))
 
 #define AVAILABLE_EILINE(P) ( PIN_TO_EILINE(P) != -1    \
   && !MATCH_X_MAX_EILINE(P) && !MATCH_X_MIN_EILINE(P)   \
@@ -106,31 +106,31 @@ void endstop_ISR() { endstops.update(); }
 
 void setup_endstop_interrupts() {
   #define _ATTACH(P) attachInterrupt(P, endstop_ISR, CHANGE)
-  #if HAS_X_MAX
+  #if USE_X_MAX
     #if !AVAILABLE_EILINE(X_MAX_PIN)
       #error "X_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X_MAX_PIN);
   #endif
-  #if HAS_X_MIN
+  #if USE_X_MIN
     #if !AVAILABLE_EILINE(X_MIN_PIN)
       #error "X_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X_MIN_PIN);
   #endif
-  #if HAS_Y_MAX
+  #if USE_Y_MAX
     #if !AVAILABLE_EILINE(Y_MAX_PIN)
       #error "Y_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y_MAX_PIN);
   #endif
-  #if HAS_Y_MIN
+  #if USE_Y_MIN
     #if !AVAILABLE_EILINE(Y_MIN_PIN)
       #error "Y_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y_MIN_PIN);
   #endif
-  #if HAS_Z_MAX
+  #if USE_Z_MAX
     #if !AVAILABLE_EILINE(Z_MAX_PIN)
       #error "Z_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
@@ -142,139 +142,139 @@ void setup_endstop_interrupts() {
     #endif
     _ATTACH(Z_MIN_PIN);
   #endif
-  #if HAS_X2_MAX
+  #if USE_X2_MAX
     #if !AVAILABLE_EILINE(X2_MAX_PIN)
       #error "X2_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X2_MAX_PIN);
   #endif
-  #if HAS_X2_MIN
+  #if USE_X2_MIN
     #if !AVAILABLE_EILINE(X2_MIN_PIN)
       #error "X2_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X2_MIN_PIN);
   #endif
-  #if HAS_Y2_MAX
+  #if USE_Y2_MAX
     #if !AVAILABLE_EILINE(Y2_MAX_PIN)
       #error "Y2_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y2_MAX_PIN);
   #endif
-  #if HAS_Y2_MIN
+  #if USE_Y2_MIN
     #if !AVAILABLE_EILINE(Y2_MIN_PIN)
       #error "Y2_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y2_MIN_PIN);
   #endif
-  #if HAS_Z2_MAX
+  #if USE_Z2_MAX
     #if !AVAILABLE_EILINE(Z2_MAX_PIN)
       #error "Z2_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z2_MAX_PIN);
   #endif
-  #if HAS_Z2_MIN
+  #if USE_Z2_MIN
     #if !AVAILABLE_EILINE(Z2_MIN_PIN)
       #error "Z2_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z2_MIN_PIN);
   #endif
-  #if HAS_Z3_MAX
+  #if USE_Z3_MAX
     #if !AVAILABLE_EILINE(Z3_MAX_PIN)
       #error "Z3_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z3_MAX_PIN);
   #endif
-  #if HAS_Z3_MIN
+  #if USE_Z3_MIN
     #if !AVAILABLE_EILINE(Z3_MIN_PIN)
       #error "Z3_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z3_MIN_PIN);
   #endif
-  #if HAS_Z4_MAX
+  #if USE_Z4_MAX
     #if !AVAILABLE_EILINE(Z4_MAX_PIN)
       #error "Z4_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z4_MAX_PIN);
   #endif
-  #if HAS_Z4_MIN
+  #if USE_Z4_MIN
     #if !AVAILABLE_EILINE(Z4_MIN_PIN)
       #error "Z4_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z4_MIN_PIN);
   #endif
-  #if HAS_Z_MIN_PROBE_PIN
+  #if USE_Z_MIN_PROBE
     #if !AVAILABLE_EILINE(Z_MIN_PROBE_PIN)
       #error "Z_MIN_PROBE_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z_MIN_PROBE_PIN);
   #endif
-  #if HAS_I_MAX
+  #if USE_I_MAX
     #if !AVAILABLE_EILINE(I_MAX_PIN)
       #error "I_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(I_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_I_MIN
+  #if USE_I_MIN
     #if !AVAILABLE_EILINE(I_MIN_PIN)
       #error "I_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(I_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_J_MAX
+  #if USE_J_MAX
     #if !AVAILABLE_EILINE(J_MAX_PIN)
       #error "J_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(J_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_J_MIN
+  #if USE_J_MIN
     #if !AVAILABLE_EILINE(J_MIN_PIN)
       #error "J_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(J_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_K_MAX
+  #if USE_K_MAX
     #if !AVAILABLE_EILINE(K_MAX_PIN)
       #error "K_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(K_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_K_MIN
+  #if USE_K_MIN
     #if !AVAILABLE_EILINE(K_MIN_PIN)
       #error "K_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(K_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_U_MAX
+  #if USE_U_MAX
     #if !AVAILABLE_EILINE(U_MAX_PIN)
       #error "U_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(U_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_U_MIN
+  #if USE_U_MIN
     #if !AVAILABLE_EILINE(U_MIN_PIN)
       #error "U_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(U_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_V_MAX
+  #if USE_V_MAX
     #if !AVAILABLE_EILINE(V_MAX_PIN)
       #error "V_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(V_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_V_MIN
+  #if USE_V_MIN
     #if !AVAILABLE_EILINE(V_MIN_PIN)
       #error "V_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(V_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_W_MAX
+  #if USE_W_MAX
     #if !AVAILABLE_EILINE(W_MAX_PIN)
       #error "W_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(W_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_W_MIN
+  #if USE_W_MIN
     #if !AVAILABLE_EILINE(W_MIN_PIN)
       #error "W_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif

+ 52 - 52
Marlin/src/HAL/SAMD51/endstop_interrupts.h

@@ -53,35 +53,35 @@
 #include "../../module/endstops.h"
 
 #define MATCH_EILINE(P1,P2) (P1 != P2 && PIN_TO_EILINE(P1) == PIN_TO_EILINE(P2))
-#define MATCH_X_MAX_EILINE(P)  TERN0(HAS_X_MAX,     DEFER4(MATCH_EILINE)(P, X_MAX_PIN))
-#define MATCH_X_MIN_EILINE(P)  TERN0(HAS_X_MIN,     DEFER4(MATCH_EILINE)(P, X_MIN_PIN))
-#define MATCH_Y_MAX_EILINE(P)  TERN0(HAS_Y_MAX,     DEFER4(MATCH_EILINE)(P, Y_MAX_PIN))
-#define MATCH_Y_MIN_EILINE(P)  TERN0(HAS_Y_MIN,     DEFER4(MATCH_EILINE)(P, Y_MIN_PIN))
-#define MATCH_Z_MAX_EILINE(P)  TERN0(HAS_Z_MAX,     DEFER4(MATCH_EILINE)(P, Z_MAX_PIN))
+#define MATCH_X_MAX_EILINE(P)  TERN0(USE_X_MAX,     DEFER4(MATCH_EILINE)(P, X_MAX_PIN))
+#define MATCH_X_MIN_EILINE(P)  TERN0(USE_X_MIN,     DEFER4(MATCH_EILINE)(P, X_MIN_PIN))
+#define MATCH_Y_MAX_EILINE(P)  TERN0(USE_Y_MAX,     DEFER4(MATCH_EILINE)(P, Y_MAX_PIN))
+#define MATCH_Y_MIN_EILINE(P)  TERN0(USE_Y_MIN,     DEFER4(MATCH_EILINE)(P, Y_MIN_PIN))
+#define MATCH_Z_MAX_EILINE(P)  TERN0(USE_Z_MAX,     DEFER4(MATCH_EILINE)(P, Z_MAX_PIN))
 #define MATCH_Z_MIN_EILINE(P)  TERN0(HAS_Z_MIN_PIN, DEFER4(MATCH_EILINE)(P, Z_MIN_PIN))
-#define MATCH_I_MAX_EILINE(P)  TERN0(HAS_I_MAX,     DEFER4(MATCH_EILINE)(P, I_MAX_PIN))
-#define MATCH_I_MIN_EILINE(P)  TERN0(HAS_I_MIN,     DEFER4(MATCH_EILINE)(P, I_MIN_PIN))
-#define MATCH_J_MAX_EILINE(P)  TERN0(HAS_J_MAX,     DEFER4(MATCH_EILINE)(P, J_MAX_PIN))
-#define MATCH_J_MIN_EILINE(P)  TERN0(HAS_J_MIN,     DEFER4(MATCH_EILINE)(P, J_MIN_PIN))
-#define MATCH_K_MAX_EILINE(P)  TERN0(HAS_K_MAX,     DEFER4(MATCH_EILINE)(P, K_MAX_PIN))
-#define MATCH_K_MIN_EILINE(P)  TERN0(HAS_K_MIN,     DEFER4(MATCH_EILINE)(P, K_MIN_PIN))
-#define MATCH_U_MAX_EILINE(P)  TERN0(HAS_U_MAX,     DEFER4(MATCH_EILINE)(P, U_MAX_PIN))
-#define MATCH_U_MIN_EILINE(P)  TERN0(HAS_U_MIN,     DEFER4(MATCH_EILINE)(P, U_MIN_PIN))
-#define MATCH_V_MAX_EILINE(P)  TERN0(HAS_V_MAX,     DEFER4(MATCH_EILINE)(P, V_MAX_PIN))
-#define MATCH_V_MIN_EILINE(P)  TERN0(HAS_V_MIN,     DEFER4(MATCH_EILINE)(P, V_MIN_PIN))
-#define MATCH_W_MAX_EILINE(P)  TERN0(HAS_W_MAX,     DEFER4(MATCH_EILINE)(P, W_MAX_PIN))
-#define MATCH_W_MIN_EILINE(P)  TERN0(HAS_W_MIN,     DEFER4(MATCH_EILINE)(P, W_MIN_PIN))
-#define MATCH_X2_MAX_EILINE(P) TERN0(HAS_X2_MAX,    DEFER4(MATCH_EILINE)(P, X2_MAX_PIN))
-#define MATCH_X2_MIN_EILINE(P) TERN0(HAS_X2_MIN,    DEFER4(MATCH_EILINE)(P, X2_MIN_PIN))
-#define MATCH_Y2_MAX_EILINE(P) TERN0(HAS_Y2_MAX,    DEFER4(MATCH_EILINE)(P, Y2_MAX_PIN))
-#define MATCH_Y2_MIN_EILINE(P) TERN0(HAS_Y2_MIN,    DEFER4(MATCH_EILINE)(P, Y2_MIN_PIN))
-#define MATCH_Z2_MAX_EILINE(P) TERN0(HAS_Z2_MAX,    DEFER4(MATCH_EILINE)(P, Z2_MAX_PIN))
-#define MATCH_Z2_MIN_EILINE(P) TERN0(HAS_Z2_MIN,    DEFER4(MATCH_EILINE)(P, Z2_MIN_PIN))
-#define MATCH_Z3_MAX_EILINE(P) TERN0(HAS_Z3_MAX,    DEFER4(MATCH_EILINE)(P, Z3_MAX_PIN))
-#define MATCH_Z3_MIN_EILINE(P) TERN0(HAS_Z3_MIN,    DEFER4(MATCH_EILINE)(P, Z3_MIN_PIN))
-#define MATCH_Z4_MAX_EILINE(P) TERN0(HAS_Z4_MAX,    DEFER4(MATCH_EILINE)(P, Z4_MAX_PIN))
-#define MATCH_Z4_MIN_EILINE(P) TERN0(HAS_Z4_MIN,    DEFER4(MATCH_EILINE)(P, Z4_MIN_PIN))
-#define MATCH_Z_MIN_PROBE_EILINE(P) TERN0(HAS_Z_MIN_PROBE_PIN, DEFER4(MATCH_EILINE)(P, Z_MIN_PROBE_PIN))
+#define MATCH_I_MAX_EILINE(P)  TERN0(USE_I_MAX,     DEFER4(MATCH_EILINE)(P, I_MAX_PIN))
+#define MATCH_I_MIN_EILINE(P)  TERN0(USE_I_MIN,     DEFER4(MATCH_EILINE)(P, I_MIN_PIN))
+#define MATCH_J_MAX_EILINE(P)  TERN0(USE_J_MAX,     DEFER4(MATCH_EILINE)(P, J_MAX_PIN))
+#define MATCH_J_MIN_EILINE(P)  TERN0(USE_J_MIN,     DEFER4(MATCH_EILINE)(P, J_MIN_PIN))
+#define MATCH_K_MAX_EILINE(P)  TERN0(USE_K_MAX,     DEFER4(MATCH_EILINE)(P, K_MAX_PIN))
+#define MATCH_K_MIN_EILINE(P)  TERN0(USE_K_MIN,     DEFER4(MATCH_EILINE)(P, K_MIN_PIN))
+#define MATCH_U_MAX_EILINE(P)  TERN0(USE_U_MAX,     DEFER4(MATCH_EILINE)(P, U_MAX_PIN))
+#define MATCH_U_MIN_EILINE(P)  TERN0(USE_U_MIN,     DEFER4(MATCH_EILINE)(P, U_MIN_PIN))
+#define MATCH_V_MAX_EILINE(P)  TERN0(USE_V_MAX,     DEFER4(MATCH_EILINE)(P, V_MAX_PIN))
+#define MATCH_V_MIN_EILINE(P)  TERN0(USE_V_MIN,     DEFER4(MATCH_EILINE)(P, V_MIN_PIN))
+#define MATCH_W_MAX_EILINE(P)  TERN0(USE_W_MAX,     DEFER4(MATCH_EILINE)(P, W_MAX_PIN))
+#define MATCH_W_MIN_EILINE(P)  TERN0(USE_W_MIN,     DEFER4(MATCH_EILINE)(P, W_MIN_PIN))
+#define MATCH_X2_MAX_EILINE(P) TERN0(USE_X2_MAX,    DEFER4(MATCH_EILINE)(P, X2_MAX_PIN))
+#define MATCH_X2_MIN_EILINE(P) TERN0(USE_X2_MIN,    DEFER4(MATCH_EILINE)(P, X2_MIN_PIN))
+#define MATCH_Y2_MAX_EILINE(P) TERN0(USE_Y2_MAX,    DEFER4(MATCH_EILINE)(P, Y2_MAX_PIN))
+#define MATCH_Y2_MIN_EILINE(P) TERN0(USE_Y2_MIN,    DEFER4(MATCH_EILINE)(P, Y2_MIN_PIN))
+#define MATCH_Z2_MAX_EILINE(P) TERN0(USE_Z2_MAX,    DEFER4(MATCH_EILINE)(P, Z2_MAX_PIN))
+#define MATCH_Z2_MIN_EILINE(P) TERN0(USE_Z2_MIN,    DEFER4(MATCH_EILINE)(P, Z2_MIN_PIN))
+#define MATCH_Z3_MAX_EILINE(P) TERN0(USE_Z3_MAX,    DEFER4(MATCH_EILINE)(P, Z3_MAX_PIN))
+#define MATCH_Z3_MIN_EILINE(P) TERN0(USE_Z3_MIN,    DEFER4(MATCH_EILINE)(P, Z3_MIN_PIN))
+#define MATCH_Z4_MAX_EILINE(P) TERN0(USE_Z4_MAX,    DEFER4(MATCH_EILINE)(P, Z4_MAX_PIN))
+#define MATCH_Z4_MIN_EILINE(P) TERN0(USE_Z4_MIN,    DEFER4(MATCH_EILINE)(P, Z4_MIN_PIN))
+#define MATCH_Z_MIN_PROBE_EILINE(P) TERN0(USE_Z_MIN_PROBE, DEFER4(MATCH_EILINE)(P, Z_MIN_PROBE_PIN))
 
 #define AVAILABLE_EILINE(P) ( PIN_TO_EILINE(P) != -1    \
   && !MATCH_X_MAX_EILINE(P) && !MATCH_X_MIN_EILINE(P)   \
@@ -105,31 +105,31 @@ void endstop_ISR() { endstops.update(); }
 
 void setup_endstop_interrupts() {
   #define _ATTACH(P) attachInterrupt(P, endstop_ISR, CHANGE)
-  #if HAS_X_MAX
+  #if USE_X_MAX
     #if !AVAILABLE_EILINE(X_MAX_PIN)
       #error "X_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X_MAX_PIN);
   #endif
-  #if HAS_X_MIN
+  #if USE_X_MIN
     #if !AVAILABLE_EILINE(X_MIN_PIN)
       #error "X_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(X_MIN_PIN);
   #endif
-  #if HAS_Y_MAX
+  #if USE_Y_MAX
     #if !AVAILABLE_EILINE(Y_MAX_PIN)
       #error "Y_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y_MAX_PIN);
   #endif
-  #if HAS_Y_MIN
+  #if USE_Y_MIN
     #if !AVAILABLE_EILINE(Y_MIN_PIN)
       #error "Y_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Y_MIN_PIN);
   #endif
-  #if HAS_Z_MAX
+  #if USE_Z_MAX
     #if !AVAILABLE_EILINE(Z_MAX_PIN)
       #error "Z_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
@@ -141,115 +141,115 @@ void setup_endstop_interrupts() {
     #endif
     _ATTACH(Z_MIN_PIN);
   #endif
-  #if HAS_Z2_MAX
+  #if USE_Z2_MAX
     #if !AVAILABLE_EILINE(Z2_MAX_PIN)
       #error "Z2_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z2_MAX_PIN);
   #endif
-  #if HAS_Z2_MIN
+  #if USE_Z2_MIN
     #if !AVAILABLE_EILINE(Z2_MIN_PIN)
       #error "Z2_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z2_MIN_PIN);
   #endif
-  #if HAS_Z3_MAX
+  #if USE_Z3_MAX
     #if !AVAILABLE_EILINE(Z3_MAX_PIN)
       #error "Z3_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z3_MAX_PIN);
   #endif
-  #if HAS_Z3_MIN
+  #if USE_Z3_MIN
     #if !AVAILABLE_EILINE(Z3_MIN_PIN)
       #error "Z3_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z3_MIN_PIN);
   #endif
-  #if HAS_Z4_MAX
+  #if USE_Z4_MAX
     #if !AVAILABLE_EILINE(Z4_MAX_PIN)
       #error "Z4_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z4_MAX_PIN);
   #endif
-  #if HAS_Z4_MIN
+  #if USE_Z4_MIN
     #if !AVAILABLE_EILINE(Z4_MIN_PIN)
       #error "Z4_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z4_MIN_PIN);
   #endif
-  #if HAS_Z_MIN_PROBE_PIN
+  #if USE_Z_MIN_PROBE
     #if !AVAILABLE_EILINE(Z_MIN_PROBE_PIN)
       #error "Z_MIN_PROBE_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     _ATTACH(Z_MIN_PROBE_PIN);
   #endif
-  #if HAS_I_MAX
+  #if USE_I_MAX
     #if !AVAILABLE_EILINE(I_MAX_PIN)
       #error "I_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(I_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_I_MIN
+  #if USE_I_MIN
     #if !AVAILABLE_EILINE(I_MIN_PIN)
       #error "I_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(I_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_J_MAX
+  #if USE_J_MAX
     #if !AVAILABLE_EILINE(J_MAX_PIN)
       #error "J_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(J_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_J_MIN
+  #if USE_J_MIN
     #if !AVAILABLE_EILINE(J_MIN_PIN)
       #error "J_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(J_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_K_MAX
+  #if USE_K_MAX
     #if !AVAILABLE_EILINE(K_MAX_PIN)
       #error "K_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(K_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_K_MIN
+  #if USE_K_MIN
     #if !AVAILABLE_EILINE(K_MIN_PIN)
       #error "K_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(K_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_U_MAX
+  #if USE_U_MAX
     #if !AVAILABLE_EILINE(U_MAX_PIN)
       #error "U_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(U_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_U_MIN
+  #if USE_U_MIN
     #if !AVAILABLE_EILINE(U_MIN_PIN)
       #error "U_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(U_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_V_MAX
+  #if USE_V_MAX
     #if !AVAILABLE_EILINE(V_MAX_PIN)
       #error "V_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(V_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_V_MIN
+  #if USE_V_MIN
     #if !AVAILABLE_EILINE(V_MIN_PIN)
       #error "V_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(V_MIN_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_W_MAX
+  #if USE_W_MAX
     #if !AVAILABLE_EILINE(W_MAX_PIN)
       #error "W_MAX_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif
     attachInterrupt(W_MAX_PIN, endstop_ISR, CHANGE);
   #endif
-  #if HAS_W_MIN
+  #if USE_W_MIN
     #if !AVAILABLE_EILINE(W_MIN_PIN)
       #error "W_MIN_PIN has no EXTINT line available. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
     #endif

+ 29 - 29
Marlin/src/HAL/STM32/endstop_interrupts.h

@@ -29,33 +29,33 @@ void endstop_ISR() { endstops.update(); }
 
 void setup_endstop_interrupts() {
   #define _ATTACH(P) attachInterrupt(P, endstop_ISR, CHANGE)
-  TERN_(HAS_X_MAX,           _ATTACH(X_MAX_PIN));
-  TERN_(HAS_X_MIN,           _ATTACH(X_MIN_PIN));
-  TERN_(HAS_Y_MAX,           _ATTACH(Y_MAX_PIN));
-  TERN_(HAS_Y_MIN,           _ATTACH(Y_MIN_PIN));
-  TERN_(HAS_Z_MAX,           _ATTACH(Z_MAX_PIN));
-  TERN_(HAS_Z_MIN_PIN,       _ATTACH(Z_MIN_PIN));
-  TERN_(HAS_X2_MAX,          _ATTACH(X2_MAX_PIN));
-  TERN_(HAS_X2_MIN,          _ATTACH(X2_MIN_PIN));
-  TERN_(HAS_Y2_MAX,          _ATTACH(Y2_MAX_PIN));
-  TERN_(HAS_Y2_MIN,          _ATTACH(Y2_MIN_PIN));
-  TERN_(HAS_Z2_MAX,          _ATTACH(Z2_MAX_PIN));
-  TERN_(HAS_Z2_MIN,          _ATTACH(Z2_MIN_PIN));
-  TERN_(HAS_Z3_MAX,          _ATTACH(Z3_MAX_PIN));
-  TERN_(HAS_Z3_MIN,          _ATTACH(Z3_MIN_PIN));
-  TERN_(HAS_Z4_MAX,          _ATTACH(Z4_MAX_PIN));
-  TERN_(HAS_Z4_MIN,          _ATTACH(Z4_MIN_PIN));
-  TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN));
-  TERN_(HAS_I_MAX,           _ATTACH(I_MAX_PIN));
-  TERN_(HAS_I_MIN,           _ATTACH(I_MIN_PIN));
-  TERN_(HAS_J_MAX,           _ATTACH(J_MAX_PIN));
-  TERN_(HAS_J_MIN,           _ATTACH(J_MIN_PIN));
-  TERN_(HAS_K_MAX,           _ATTACH(K_MAX_PIN));
-  TERN_(HAS_K_MIN,           _ATTACH(K_MIN_PIN));
-  TERN_(HAS_U_MAX,           _ATTACH(U_MAX_PIN));
-  TERN_(HAS_U_MIN,           _ATTACH(U_MIN_PIN));
-  TERN_(HAS_V_MAX,           _ATTACH(V_MAX_PIN));
-  TERN_(HAS_V_MIN,           _ATTACH(V_MIN_PIN));
-  TERN_(HAS_W_MAX,           _ATTACH(W_MAX_PIN));
-  TERN_(HAS_W_MIN,           _ATTACH(W_MIN_PIN));
+  TERN_(USE_X_MAX,       _ATTACH(X_MAX_PIN));
+  TERN_(USE_X_MIN,       _ATTACH(X_MIN_PIN));
+  TERN_(USE_Y_MAX,       _ATTACH(Y_MAX_PIN));
+  TERN_(USE_Y_MIN,       _ATTACH(Y_MIN_PIN));
+  TERN_(USE_Z_MAX,       _ATTACH(Z_MAX_PIN));
+  TERN_(HAS_Z_MIN_PIN,   _ATTACH(Z_MIN_PIN));
+  TERN_(USE_X2_MAX,      _ATTACH(X2_MAX_PIN));
+  TERN_(USE_X2_MIN,      _ATTACH(X2_MIN_PIN));
+  TERN_(USE_Y2_MAX,      _ATTACH(Y2_MAX_PIN));
+  TERN_(USE_Y2_MIN,      _ATTACH(Y2_MIN_PIN));
+  TERN_(USE_Z2_MAX,      _ATTACH(Z2_MAX_PIN));
+  TERN_(USE_Z2_MIN,      _ATTACH(Z2_MIN_PIN));
+  TERN_(USE_Z3_MAX,      _ATTACH(Z3_MAX_PIN));
+  TERN_(USE_Z3_MIN,      _ATTACH(Z3_MIN_PIN));
+  TERN_(USE_Z4_MAX,      _ATTACH(Z4_MAX_PIN));
+  TERN_(USE_Z4_MIN,      _ATTACH(Z4_MIN_PIN));
+  TERN_(USE_Z_MIN_PROBE, _ATTACH(Z_MIN_PROBE_PIN));
+  TERN_(USE_I_MAX,       _ATTACH(I_MAX_PIN));
+  TERN_(USE_I_MIN,       _ATTACH(I_MIN_PIN));
+  TERN_(USE_J_MAX,       _ATTACH(J_MAX_PIN));
+  TERN_(USE_J_MIN,       _ATTACH(J_MIN_PIN));
+  TERN_(USE_K_MAX,       _ATTACH(K_MAX_PIN));
+  TERN_(USE_K_MIN,       _ATTACH(K_MIN_PIN));
+  TERN_(USE_U_MAX,       _ATTACH(U_MAX_PIN));
+  TERN_(USE_U_MIN,       _ATTACH(U_MIN_PIN));
+  TERN_(USE_V_MAX,       _ATTACH(V_MAX_PIN));
+  TERN_(USE_V_MIN,       _ATTACH(V_MIN_PIN));
+  TERN_(USE_W_MAX,       _ATTACH(W_MAX_PIN));
+  TERN_(USE_W_MIN,       _ATTACH(W_MIN_PIN));
 }

+ 29 - 29
Marlin/src/HAL/STM32F1/endstop_interrupts.h

@@ -54,33 +54,33 @@ void endstop_ISR() { endstops.update(); }
 
 void setup_endstop_interrupts() {
   #define _ATTACH(P) attachInterrupt(P, endstop_ISR, CHANGE)
-  TERN_(HAS_X_MAX,           _ATTACH(X_MAX_PIN));
-  TERN_(HAS_X_MIN,           _ATTACH(X_MIN_PIN));
-  TERN_(HAS_Y_MAX,           _ATTACH(Y_MAX_PIN));
-  TERN_(HAS_Y_MIN,           _ATTACH(Y_MIN_PIN));
-  TERN_(HAS_Z_MAX,           _ATTACH(Z_MAX_PIN));
-  TERN_(HAS_Z_MIN_PIN,       _ATTACH(Z_MIN_PIN));
-  TERN_(HAS_X2_MAX,          _ATTACH(X2_MAX_PIN));
-  TERN_(HAS_X2_MIN,          _ATTACH(X2_MIN_PIN));
-  TERN_(HAS_Y2_MAX,          _ATTACH(Y2_MAX_PIN));
-  TERN_(HAS_Y2_MIN,          _ATTACH(Y2_MIN_PIN));
-  TERN_(HAS_Z2_MAX,          _ATTACH(Z2_MAX_PIN));
-  TERN_(HAS_Z2_MIN,          _ATTACH(Z2_MIN_PIN));
-  TERN_(HAS_Z3_MAX,          _ATTACH(Z3_MAX_PIN));
-  TERN_(HAS_Z3_MIN,          _ATTACH(Z3_MIN_PIN));
-  TERN_(HAS_Z4_MAX,          _ATTACH(Z4_MAX_PIN));
-  TERN_(HAS_Z4_MIN,          _ATTACH(Z4_MIN_PIN));
-  TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN));
-  TERN_(HAS_I_MAX,           _ATTACH(I_MAX_PIN));
-  TERN_(HAS_I_MIN,           _ATTACH(I_MIN_PIN));
-  TERN_(HAS_J_MAX,           _ATTACH(J_MAX_PIN));
-  TERN_(HAS_J_MIN,           _ATTACH(J_MIN_PIN));
-  TERN_(HAS_K_MAX,           _ATTACH(K_MAX_PIN));
-  TERN_(HAS_K_MIN,           _ATTACH(K_MIN_PIN));
-  TERN_(HAS_U_MAX,           _ATTACH(U_MAX_PIN));
-  TERN_(HAS_U_MIN,           _ATTACH(U_MIN_PIN));
-  TERN_(HAS_V_MAX,           _ATTACH(V_MAX_PIN));
-  TERN_(HAS_V_MIN,           _ATTACH(V_MIN_PIN));
-  TERN_(HAS_W_MAX,           _ATTACH(W_MAX_PIN));
-  TERN_(HAS_W_MIN,           _ATTACH(W_MIN_PIN));
+  TERN_(USE_X_MAX,       _ATTACH(X_MAX_PIN));
+  TERN_(USE_X_MIN,       _ATTACH(X_MIN_PIN));
+  TERN_(USE_Y_MAX,       _ATTACH(Y_MAX_PIN));
+  TERN_(USE_Y_MIN,       _ATTACH(Y_MIN_PIN));
+  TERN_(USE_Z_MAX,       _ATTACH(Z_MAX_PIN));
+  TERN_(HAS_Z_MIN_PIN,   _ATTACH(Z_MIN_PIN));
+  TERN_(USE_X2_MAX,      _ATTACH(X2_MAX_PIN));
+  TERN_(USE_X2_MIN,      _ATTACH(X2_MIN_PIN));
+  TERN_(USE_Y2_MAX,      _ATTACH(Y2_MAX_PIN));
+  TERN_(USE_Y2_MIN,      _ATTACH(Y2_MIN_PIN));
+  TERN_(USE_Z2_MAX,      _ATTACH(Z2_MAX_PIN));
+  TERN_(USE_Z2_MIN,      _ATTACH(Z2_MIN_PIN));
+  TERN_(USE_Z3_MAX,      _ATTACH(Z3_MAX_PIN));
+  TERN_(USE_Z3_MIN,      _ATTACH(Z3_MIN_PIN));
+  TERN_(USE_Z4_MAX,      _ATTACH(Z4_MAX_PIN));
+  TERN_(USE_Z4_MIN,      _ATTACH(Z4_MIN_PIN));
+  TERN_(USE_Z_MIN_PROBE, _ATTACH(Z_MIN_PROBE_PIN));
+  TERN_(USE_I_MAX,       _ATTACH(I_MAX_PIN));
+  TERN_(USE_I_MIN,       _ATTACH(I_MIN_PIN));
+  TERN_(USE_J_MAX,       _ATTACH(J_MAX_PIN));
+  TERN_(USE_J_MIN,       _ATTACH(J_MIN_PIN));
+  TERN_(USE_K_MAX,       _ATTACH(K_MAX_PIN));
+  TERN_(USE_K_MIN,       _ATTACH(K_MIN_PIN));
+  TERN_(USE_U_MAX,       _ATTACH(U_MAX_PIN));
+  TERN_(USE_U_MIN,       _ATTACH(U_MIN_PIN));
+  TERN_(USE_V_MAX,       _ATTACH(V_MAX_PIN));
+  TERN_(USE_V_MIN,       _ATTACH(V_MIN_PIN));
+  TERN_(USE_W_MAX,       _ATTACH(W_MAX_PIN));
+  TERN_(USE_W_MIN,       _ATTACH(W_MIN_PIN));
 }

Some files were not shown because too many files changed in this diff