|
@@ -2150,6 +2150,47 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
2150
|
2150
|
#endif
|
2151
|
2151
|
#undef INVALID_TMC_ADDRESS
|
2152
|
2152
|
|
|
2153
|
+#define _TMC_MICROSTEP_IS_VALID(MS) (MS == 0 || MS == 2 || MS == 4 || MS == 8 || MS == 16 || MS == 32 || MS == 64 || MS == 128 || MS == 256)
|
|
2154
|
+#define TMC_MICROSTEP_IS_VALID(M) (!AXIS_IS_TMC(M) || _TMC_MICROSTEP_IS_VALID(M##_MICROSTEPS))
|
|
2155
|
+#define INVALID_TMC_MS(ST) static_assert(0, "Invalid " STRINGIFY(ST) "_MICROSTEPS. Valid values are 0, 2, 4, 8, 16, 32, 64, 128, and 256.")
|
|
2156
|
+
|
|
2157
|
+#if !TMC_MICROSTEP_IS_VALID(X)
|
|
2158
|
+ INVALID_TMC_MS(X);
|
|
2159
|
+#elif !TMC_MICROSTEP_IS_VALID(Y)
|
|
2160
|
+ INVALID_TMC_MS(Y)
|
|
2161
|
+#elif !TMC_MICROSTEP_IS_VALID(Z)
|
|
2162
|
+ INVALID_TMC_MS(Z)
|
|
2163
|
+#elif !TMC_MICROSTEP_IS_VALID(X2)
|
|
2164
|
+ INVALID_TMC_MS(X2);
|
|
2165
|
+#elif !TMC_MICROSTEP_IS_VALID(Y2)
|
|
2166
|
+ INVALID_TMC_MS(Y2)
|
|
2167
|
+#elif !TMC_MICROSTEP_IS_VALID(Z2)
|
|
2168
|
+ INVALID_TMC_MS(Z2)
|
|
2169
|
+#elif !TMC_MICROSTEP_IS_VALID(Z3)
|
|
2170
|
+ INVALID_TMC_MS(Z3)
|
|
2171
|
+#elif !TMC_MICROSTEP_IS_VALID(Z4)
|
|
2172
|
+ INVALID_TMC_MS(Z4)
|
|
2173
|
+#elif !TMC_MICROSTEP_IS_VALID(E0)
|
|
2174
|
+ INVALID_TMC_MS(E0)
|
|
2175
|
+#elif !TMC_MICROSTEP_IS_VALID(E1)
|
|
2176
|
+ INVALID_TMC_MS(E1)
|
|
2177
|
+#elif !TMC_MICROSTEP_IS_VALID(E2)
|
|
2178
|
+ INVALID_TMC_MS(E2)
|
|
2179
|
+#elif !TMC_MICROSTEP_IS_VALID(E3)
|
|
2180
|
+ INVALID_TMC_MS(E3)
|
|
2181
|
+#elif !TMC_MICROSTEP_IS_VALID(E4)
|
|
2182
|
+ INVALID_TMC_MS(E4)
|
|
2183
|
+#elif !TMC_MICROSTEP_IS_VALID(E5)
|
|
2184
|
+ INVALID_TMC_MS(E5)
|
|
2185
|
+#elif !TMC_MICROSTEP_IS_VALID(E6)
|
|
2186
|
+ INVALID_TMC_MS(E6)
|
|
2187
|
+#elif !TMC_MICROSTEP_IS_VALID(E7)
|
|
2188
|
+ INVALID_TMC_MS(E7)
|
|
2189
|
+#endif
|
|
2190
|
+#undef INVALID_TMC_MS
|
|
2191
|
+#undef TMC_MICROSTEP_IS_VALID
|
|
2192
|
+#undef _TMC_MICROSTEP_IS_VALID
|
|
2193
|
+
|
2153
|
2194
|
#if ENABLED(DELTA) && (ENABLED(STEALTHCHOP_XY) != ENABLED(STEALTHCHOP_Z))
|
2154
|
2195
|
#error "STEALTHCHOP_XY and STEALTHCHOP_Z must be the same on DELTA."
|
2155
|
2196
|
#endif
|