|
@@ -1704,64 +1704,68 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
|
1704
|
1704
|
/**
|
1705
|
1705
|
* Check existing CS pins against enabled TMC SPI drivers.
|
1706
|
1706
|
*/
|
1707
|
|
-#if AXIS_DRIVER_TYPE(X, TMC2130) && !PIN_EXISTS(X_CS)
|
|
1707
|
+#define INVALID_TMC2130(ST) (AXIS_DRIVER_TYPE(ST, TMC2130) && !PIN_EXISTS(ST##_CS))
|
|
1708
|
+#if INVALID_TMC2130(X)
|
1708
|
1709
|
#error "TMC2130 on X requires X_CS_PIN."
|
1709
|
|
-#elif AXIS_DRIVER_TYPE(X2, TMC2130) && !PIN_EXISTS(X2_CS)
|
|
1710
|
+#elif INVALID_TMC2130(X2)
|
1710
|
1711
|
#error "TMC2130 on X2 requires X2_CS_PIN."
|
1711
|
|
-#elif AXIS_DRIVER_TYPE(Y, TMC2130) && !PIN_EXISTS(Y_CS)
|
|
1712
|
+#elif INVALID_TMC2130(Y)
|
1712
|
1713
|
#error "TMC2130 on Y requires Y_CS_PIN."
|
1713
|
|
-#elif AXIS_DRIVER_TYPE(Y2, TMC2130) && !PIN_EXISTS(Y2_CS)
|
|
1714
|
+#elif INVALID_TMC2130(Y2)
|
1714
|
1715
|
#error "TMC2130 on Y2 requires Y2_CS_PIN."
|
1715
|
|
-#elif AXIS_DRIVER_TYPE(Z, TMC2130) && !PIN_EXISTS(Z_CS)
|
|
1716
|
+#elif INVALID_TMC2130(Z)
|
1716
|
1717
|
#error "TMC2130 on Z requires Z_CS_PIN."
|
1717
|
|
-#elif AXIS_DRIVER_TYPE(Z2, TMC2130) && !PIN_EXISTS(Z2_CS)
|
|
1718
|
+#elif INVALID_TMC2130(Z2)
|
1718
|
1719
|
#error "TMC2130 on Z2 requires Z2_CS_PIN."
|
1719
|
|
-#elif AXIS_DRIVER_TYPE(Z3, TMC2130) && !PIN_EXISTS(Z3_CS)
|
|
1720
|
+#elif INVALID_TMC2130(Z3)
|
1720
|
1721
|
#error "TMC2130 on Z3 requires Z3_CS_PIN."
|
1721
|
|
-#elif AXIS_DRIVER_TYPE(E0, TMC2130) && !PIN_EXISTS(E0_CS)
|
|
1722
|
+#elif INVALID_TMC2130(E0)
|
1722
|
1723
|
#error "TMC2130 on E0 requires E0_CS_PIN."
|
1723
|
|
-#elif AXIS_DRIVER_TYPE(E1, TMC2130) && !PIN_EXISTS(E1_CS)
|
|
1724
|
+#elif INVALID_TMC2130(E1)
|
1724
|
1725
|
#error "TMC2130 on E1 requires E1_CS_PIN."
|
1725
|
|
-#elif AXIS_DRIVER_TYPE(E2, TMC2130) && !PIN_EXISTS(E2_CS)
|
|
1726
|
+#elif INVALID_TMC2130(E2)
|
1726
|
1727
|
#error "TMC2130 on E2 requires E2_CS_PIN."
|
1727
|
|
-#elif AXIS_DRIVER_TYPE(E3, TMC2130) && !PIN_EXISTS(E3_CS)
|
|
1728
|
+#elif INVALID_TMC2130(E3)
|
1728
|
1729
|
#error "TMC2130 on E3 requires E3_CS_PIN."
|
1729
|
|
-#elif AXIS_DRIVER_TYPE(E4, TMC2130) && !PIN_EXISTS(E4_CS)
|
|
1730
|
+#elif INVALID_TMC2130(E4)
|
1730
|
1731
|
#error "TMC2130 on E4 requires E4_CS_PIN."
|
1731
|
|
-#elif AXIS_DRIVER_TYPE(E5, TMC2130) && !PIN_EXISTS(E5_CS)
|
|
1732
|
+#elif INVALID_TMC2130(E5)
|
1732
|
1733
|
#error "TMC2130 on E5 requires E5_CS_PIN."
|
1733
|
1734
|
#endif
|
|
1735
|
+#undef INVALID_TMC2130
|
1734
|
1736
|
|
1735
|
1737
|
/**
|
1736
|
1738
|
* Check existing RX/TX pins against enable TMC UART drivers.
|
1737
|
1739
|
*/
|
1738
|
|
-#if AXIS_DRIVER_TYPE(X, TMC2208) && !(defined(X_HARDWARE_SERIAL) || (PIN_EXISTS(X_SERIAL_RX) && PIN_EXISTS(X_SERIAL_TX)))
|
1739
|
|
- #error "TMC2208 on X requires X_HARDWARE_SERIAL or both X_SERIAL_RX_PIN and X_SERIAL_TX_PIN."
|
1740
|
|
-#elif AXIS_DRIVER_TYPE(X2, TMC2208) && !(defined(X2_HARDWARE_SERIAL) || (PIN_EXISTS(X2_SERIAL_RX) && PIN_EXISTS(X2_SERIAL_TX)))
|
1741
|
|
- #error "TMC2208 on X2 requires X2_HARDWARE_SERIAL or both X2_SERIAL_RX_PIN and X2_SERIAL_TX_PIN."
|
1742
|
|
-#elif AXIS_DRIVER_TYPE(Y, TMC2208) && !(defined(Y_HARDWARE_SERIAL) || (PIN_EXISTS(Y_SERIAL_RX) && PIN_EXISTS(Y_SERIAL_TX)))
|
1743
|
|
- #error "TMC2208 on Y requires Y_HARDWARE_SERIAL or both Y_SERIAL_RX_PIN and Y_SERIAL_TX_PIN."
|
1744
|
|
-#elif AXIS_DRIVER_TYPE(Y2, TMC2208) && !(defined(Y2_HARDWARE_SERIAL) || (PIN_EXISTS(Y2_SERIAL_RX) && PIN_EXISTS(Y2_SERIAL_TX)))
|
1745
|
|
- #error "TMC2208 on Y2 requires Y2_HARDWARE_SERIAL or both Y2_SERIAL_RX_PIN and Y2_SERIAL_TX_PIN."
|
1746
|
|
-#elif AXIS_DRIVER_TYPE(Z, TMC2208) && !(defined(Z_HARDWARE_SERIAL) || (PIN_EXISTS(Z_SERIAL_RX) && PIN_EXISTS(Z_SERIAL_TX)))
|
1747
|
|
- #error "TMC2208 on Z requires Z_HARDWARE_SERIAL or both Z_SERIAL_RX_PIN and Z_SERIAL_TX_PIN."
|
1748
|
|
-#elif AXIS_DRIVER_TYPE(Z2, TMC2208) && !(defined(Z2_HARDWARE_SERIAL) || (PIN_EXISTS(Z2_SERIAL_RX) && PIN_EXISTS(Z2_SERIAL_TX)))
|
1749
|
|
- #error "TMC2208 on Z2 requires Z2_HARDWARE_SERIAL or both Z2_SERIAL_RX_PIN and Z2_SERIAL_TX_PIN."
|
1750
|
|
-#elif AXIS_DRIVER_TYPE(Z3, TMC2208) && !(defined(Z3_HARDWARE_SERIAL) || (PIN_EXISTS(Z3_SERIAL_RX) && PIN_EXISTS(Z3_SERIAL_TX)))
|
1751
|
|
- #error "TMC2208 on Z3 requires Z3_HARDWARE_SERIAL or both Z3_SERIAL_RX_PIN and Z3_SERIAL_TX_PIN."
|
1752
|
|
-#elif AXIS_DRIVER_TYPE(E0, TMC2208) && !(defined(E0_HARDWARE_SERIAL) || (PIN_EXISTS(E0_SERIAL_RX) && PIN_EXISTS(E0_SERIAL_TX)))
|
1753
|
|
- #error "TMC2208 on E0 requires E0_HARDWARE_SERIAL or both E0_SERIAL_RX_PIN and E0_SERIAL_TX_PIN."
|
1754
|
|
-#elif AXIS_DRIVER_TYPE(E1, TMC2208) && !(defined(E1_HARDWARE_SERIAL) || (PIN_EXISTS(E1_SERIAL_RX) && PIN_EXISTS(E1_SERIAL_TX)))
|
1755
|
|
- #error "TMC2208 on E1 requires E1_HARDWARE_SERIAL or both E1_SERIAL_RX_PIN and E1_SERIAL_TX_PIN."
|
1756
|
|
-#elif AXIS_DRIVER_TYPE(E2, TMC2208) && !(defined(E2_HARDWARE_SERIAL) || (PIN_EXISTS(E2_SERIAL_RX) && PIN_EXISTS(E2_SERIAL_TX)))
|
1757
|
|
- #error "TMC2208 on E2 requires E2_HARDWARE_SERIAL or both E2_SERIAL_RX_PIN and E2_SERIAL_TX_PIN."
|
1758
|
|
-#elif AXIS_DRIVER_TYPE(E3, TMC2208) && !(defined(E3_HARDWARE_SERIAL) || (PIN_EXISTS(E3_SERIAL_RX) && PIN_EXISTS(E3_SERIAL_TX)))
|
1759
|
|
- #error "TMC2208 on E3 requires E3_HARDWARE_SERIAL or both E3_SERIAL_RX_PIN and E3_SERIAL_TX_PIN."
|
1760
|
|
-#elif AXIS_DRIVER_TYPE(E4, TMC2208) && !(defined(E4_HARDWARE_SERIAL) || (PIN_EXISTS(E4_SERIAL_RX) && PIN_EXISTS(E4_SERIAL_TX)))
|
1761
|
|
- #error "TMC2208 on E4 requires E4_HARDWARE_SERIAL or both E4_SERIAL_RX_PIN and E4_SERIAL_TX_PIN."
|
1762
|
|
-#elif AXIS_DRIVER_TYPE(E5, TMC2208) && !(defined(E5_HARDWARE_SERIAL) || (PIN_EXISTS(E5_SERIAL_RX) && PIN_EXISTS(E5_SERIAL_TX)))
|
1763
|
|
- #error "TMC2208 on E5 requires E5_HARDWARE_SERIAL or both E5_SERIAL_RX_PIN and E5_SERIAL_TX_PIN."
|
1764
|
|
-#endif
|
|
1740
|
+#define INVALID_TMC2208(ST) (AXIS_DRIVER_TYPE(ST, TMC2208) && !(defined(ST##_HARDWARE_SERIAL) || (PIN_EXISTS(ST##_SERIAL_RX) && PIN_EXISTS(ST##_SERIAL_TX))))
|
|
1741
|
+#if INVALID_TMC2208(X)
|
|
1742
|
+ #error "TMC2208 on X requires X_HARDWARE_SERIAL or X_SERIAL_(RX|TX)_PIN."
|
|
1743
|
+#elif INVALID_TMC2208(X2)
|
|
1744
|
+ #error "TMC2208 on X2 requires X2_HARDWARE_SERIAL or X2_SERIAL_(RX|TX)_PIN."
|
|
1745
|
+#elif INVALID_TMC2208(Y)
|
|
1746
|
+ #error "TMC2208 on Y requires Y_HARDWARE_SERIAL or Y_SERIAL_(RX|TX)_PIN."
|
|
1747
|
+#elif INVALID_TMC2208(Y2)
|
|
1748
|
+ #error "TMC2208 on Y2 requires Y2_HARDWARE_SERIAL or Y2_SERIAL_(RX|TX)_PIN."
|
|
1749
|
+#elif INVALID_TMC2208(Z)
|
|
1750
|
+ #error "TMC2208 on Z requires Z_HARDWARE_SERIAL or Z_SERIAL_(RX|TX)_PIN."
|
|
1751
|
+#elif INVALID_TMC2208(Z2)
|
|
1752
|
+ #error "TMC2208 on Z2 requires Z2_HARDWARE_SERIAL or Z2_SERIAL_(RX|TX)_PIN."
|
|
1753
|
+#elif INVALID_TMC2208(Z3)
|
|
1754
|
+ #error "TMC2208 on Z3 requires Z3_HARDWARE_SERIAL or Z3_SERIAL_(RX|TX)_PIN."
|
|
1755
|
+#elif INVALID_TMC2208(E0)
|
|
1756
|
+ #error "TMC2208 on E0 requires E0_HARDWARE_SERIAL or E0_SERIAL_(RX|TX)_PIN."
|
|
1757
|
+#elif INVALID_TMC2208(E1)
|
|
1758
|
+ #error "TMC2208 on E1 requires E1_HARDWARE_SERIAL or E1_SERIAL_(RX|TX)_PIN."
|
|
1759
|
+#elif INVALID_TMC2208(E2)
|
|
1760
|
+ #error "TMC2208 on E2 requires E2_HARDWARE_SERIAL or E2_SERIAL_(RX|TX)_PIN."
|
|
1761
|
+#elif INVALID_TMC2208(E3)
|
|
1762
|
+ #error "TMC2208 on E3 requires E3_HARDWARE_SERIAL or E3_SERIAL_(RX|TX)_PIN."
|
|
1763
|
+#elif INVALID_TMC2208(E4)
|
|
1764
|
+ #error "TMC2208 on E4 requires E4_HARDWARE_SERIAL or E4_SERIAL_(RX|TX)_PIN."
|
|
1765
|
+#elif INVALID_TMC2208(E5)
|
|
1766
|
+ #error "TMC2208 on E5 requires E5_HARDWARE_SERIAL or E5_SERIAL_(RX|TX)_PIN."
|
|
1767
|
+#endif
|
|
1768
|
+#undef INVALID_TMC2208
|
1765
|
1769
|
|
1766
|
1770
|
/**
|
1767
|
1771
|
* TMC2208 software UART and ENDSTOP_INTERRUPTS both use pin change interrupts (PCI)
|