Selaa lähdekoodia

🚸 Strict index 2 for M913 / M914 XY (#24680)

Giuliano Zaro 2 vuotta sitten
vanhempi
commit
89f86bc550
No account linked to committer's email address

+ 4
- 5
Marlin/src/gcode/feature/trinamic/M911-M914.cpp Näytä tiedosto

294
         #if X_HAS_STEALTHCHOP || X2_HAS_STEALTHCHOP
294
         #if X_HAS_STEALTHCHOP || X2_HAS_STEALTHCHOP
295
           case X_AXIS:
295
           case X_AXIS:
296
             TERN_(X_HAS_STEALTHCHOP,  if (index < 2) TMC_SET_PWMTHRS(X,X));
296
             TERN_(X_HAS_STEALTHCHOP,  if (index < 2) TMC_SET_PWMTHRS(X,X));
297
-            TERN_(X2_HAS_STEALTHCHOP, if (!(index & 1)) TMC_SET_PWMTHRS(X,X2));
297
+            TERN_(X2_HAS_STEALTHCHOP, if (!index || index == 2) TMC_SET_PWMTHRS(X,X2));
298
             break;
298
             break;
299
         #endif
299
         #endif
300
 
300
 
301
         #if Y_HAS_STEALTHCHOP || Y2_HAS_STEALTHCHOP
301
         #if Y_HAS_STEALTHCHOP || Y2_HAS_STEALTHCHOP
302
           case Y_AXIS:
302
           case Y_AXIS:
303
             TERN_(Y_HAS_STEALTHCHOP,  if (index < 2) TMC_SET_PWMTHRS(Y,Y));
303
             TERN_(Y_HAS_STEALTHCHOP,  if (index < 2) TMC_SET_PWMTHRS(Y,Y));
304
-            TERN_(Y2_HAS_STEALTHCHOP, if (!(index & 1)) TMC_SET_PWMTHRS(Y,Y2));
304
+            TERN_(Y2_HAS_STEALTHCHOP, if (!index || index == 2) TMC_SET_PWMTHRS(Y,Y2));
305
             break;
305
             break;
306
         #endif
306
         #endif
307
 
307
 
499
    * M914: Set StallGuard sensitivity.
499
    * M914: Set StallGuard sensitivity.
500
    */
500
    */
501
   void GcodeSuite::M914() {
501
   void GcodeSuite::M914() {
502
-
503
     bool report = true;
502
     bool report = true;
504
     const uint8_t index = parser.byteval('I');
503
     const uint8_t index = parser.byteval('I');
505
     LOOP_NUM_AXES(i) if (parser.seen(AXIS_CHAR(i))) {
504
     LOOP_NUM_AXES(i) if (parser.seen(AXIS_CHAR(i))) {
509
         #if X_SENSORLESS
508
         #if X_SENSORLESS
510
           case X_AXIS:
509
           case X_AXIS:
511
             if (index < 2) stepperX.homing_threshold(value);
510
             if (index < 2) stepperX.homing_threshold(value);
512
-            TERN_(X2_SENSORLESS, if (!(index & 1)) stepperX2.homing_threshold(value));
511
+            TERN_(X2_SENSORLESS, if (!index || index == 2) stepperX2.homing_threshold(value));
513
             break;
512
             break;
514
         #endif
513
         #endif
515
         #if Y_SENSORLESS
514
         #if Y_SENSORLESS
516
           case Y_AXIS:
515
           case Y_AXIS:
517
             if (index < 2) stepperY.homing_threshold(value);
516
             if (index < 2) stepperY.homing_threshold(value);
518
-            TERN_(Y2_SENSORLESS, if (!(index & 1)) stepperY2.homing_threshold(value));
517
+            TERN_(Y2_SENSORLESS, if (!index || index == 2) stepperY2.homing_threshold(value));
519
             break;
518
             break;
520
         #endif
519
         #endif
521
         #if Z_SENSORLESS
520
         #if Z_SENSORLESS

+ 6
- 0
Marlin/src/inc/SanityCheck.h Näytä tiedosto

2044
   );
2044
   );
2045
 #endif
2045
 #endif
2046
 
2046
 
2047
+#define COUNT_SENSORLESS COUNT_ENABLED(Z_SENSORLESS, Z2_SENSORLESS, Z3_SENSORLESS, Z4_SENSORLESS)
2048
+#if COUNT_SENSORLESS && COUNT_SENSORLESS != NUM_Z_STEPPERS
2049
+  #error "All Z steppers must have *_STALL_SENSITIVITY defined to use Z sensorless homing."
2050
+#endif
2051
+#undef COUNT_SENSORLESS
2052
+
2047
 #ifdef SENSORLESS_BACKOFF_MM
2053
 #ifdef SENSORLESS_BACKOFF_MM
2048
   constexpr float sbm[] = SENSORLESS_BACKOFF_MM;
2054
   constexpr float sbm[] = SENSORLESS_BACKOFF_MM;
2049
   static_assert(COUNT(sbm) == NUM_AXES, "SENSORLESS_BACKOFF_MM must have " _NUM_AXES_STR "elements (and no others).");
2055
   static_assert(COUNT(sbm) == NUM_AXES, "SENSORLESS_BACKOFF_MM must have " _NUM_AXES_STR "elements (and no others).");

Loading…
Peruuta
Tallenna