瀏覽代碼

Improve sanity checks with static_assert, organize

Scott Lahteine 8 年之前
父節點
當前提交
9128d9ab45
共有 1 個文件被更改,包括 199 次插入165 次删除
  1. 199
    165
      Marlin/SanityCheck.h

+ 199
- 165
Marlin/SanityCheck.h 查看文件

@@ -271,23 +271,6 @@
271 271
 #endif
272 272
 
273 273
 /**
274
- * Delta requirements
275
- */
276
-#if ENABLED(DELTA)
277
-  #if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
278
-    #error "You probably want to use Max Endstops for DELTA!"
279
-  #elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_DELTA
280
-    #error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
281
-  #elif ABL_GRID
282
-    #if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
283
-      #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
284
-    #elif GRID_MAX_POINTS_X < 3
285
-      #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be 3 or higher."
286
-    #endif
287
-  #endif
288
-#endif
289
-
290
-/**
291 274
  * Babystepping
292 275
  */
293 276
 #if ENABLED(BABYSTEPPING)
@@ -430,44 +413,57 @@
430 413
 #endif
431 414
 
432 415
 /**
433
- * Allow only one bed leveling option to be defined
416
+ * Kinematics
417
+ */
418
+
419
+/**
420
+ * Allow only one kinematic type to be defined
434 421
  */
435 422
 static_assert(1 >= 0
436
-  #if ENABLED(AUTO_BED_LEVELING_LINEAR)
423
+  #if ENABLED(DELTA)
437 424
     + 1
438 425
   #endif
439
-  #if ENABLED(AUTO_BED_LEVELING_3POINT)
426
+  #if ENABLED(MORGAN_SCARA)
440 427
     + 1
441 428
   #endif
442
-  #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
429
+  #if ENABLED(MAKERARM_SCARA)
443 430
     + 1
444 431
   #endif
445
-  #if ENABLED(AUTO_BED_LEVELING_UBL)
432
+  #if ENABLED(COREXY)
446 433
     + 1
447 434
   #endif
448
-  #if ENABLED(MESH_BED_LEVELING)
435
+  #if ENABLED(COREXZ)
449 436
     + 1
450 437
   #endif
451
-  , "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
452
-);
453
-
454
-/**
455
- * Mesh Bed Leveling
456
- */
457
-#if ENABLED(MESH_BED_LEVELING)
458
-  #if ENABLED(DELTA)
459
-    #error "MESH_BED_LEVELING does not yet support DELTA printers."
460
-  #elif GRID_MAX_POINTS_X > 9 || GRID_MAX_POINTS_Y > 9
461
-    #error "GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y must be less than 10 for MBL."
438
+  #if ENABLED(COREYZ)
439
+    + 1
462 440
   #endif
463
-#endif
441
+  #if ENABLED(COREYX)
442
+    + 1
443
+  #endif
444
+  #if ENABLED(COREZX)
445
+    + 1
446
+  #endif
447
+  #if ENABLED(COREZY)
448
+    + 1
449
+  #endif
450
+  , "Please enable only one of DELTA, MORGAN_SCARA, MAKERARM_SCARA, COREXY, COREYX, COREXZ, COREZX, COREYZ, or COREZY."
451
+);
464 452
 
465 453
 /**
466
- * Unified Bed Leveling
454
+ * Delta requirements
467 455
  */
468
-#if ENABLED(AUTO_BED_LEVELING_UBL)
469
-  #if IS_SCARA
470
-    #error "AUTO_BED_LEVELING_UBL does not yet support SCARA printers."
456
+#if ENABLED(DELTA)
457
+  #if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
458
+    #error "You probably want to use Max Endstops for DELTA!"
459
+  #elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_DELTA
460
+    #error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
461
+  #elif ABL_GRID
462
+    #if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
463
+      #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
464
+    #elif GRID_MAX_POINTS_X < 3
465
+      #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be 3 or higher."
466
+    #endif
471 467
   #endif
472 468
 #endif
473 469
 
@@ -503,7 +499,6 @@ static_assert(1 >= 0
503 499
   , "Please enable only one probe option: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
504 500
 );
505 501
 
506
-
507 502
 #if PROBE_SELECTED
508 503
 
509 504
   /**
@@ -594,6 +589,114 @@ static_assert(1 >= 0
594 589
 #endif
595 590
 
596 591
 /**
592
+ * Allow only one bed leveling option to be defined
593
+ */
594
+static_assert(1 >= 0
595
+  #if ENABLED(AUTO_BED_LEVELING_LINEAR)
596
+    + 1
597
+  #endif
598
+  #if ENABLED(AUTO_BED_LEVELING_3POINT)
599
+    + 1
600
+  #endif
601
+  #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
602
+    + 1
603
+  #endif
604
+  #if ENABLED(AUTO_BED_LEVELING_UBL)
605
+    + 1
606
+  #endif
607
+  #if ENABLED(MESH_BED_LEVELING)
608
+    + 1
609
+  #endif
610
+  , "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
611
+);
612
+
613
+/**
614
+ * Bed Leveling Requirements
615
+ */
616
+
617
+#if ENABLED(AUTO_BED_LEVELING_UBL)
618
+
619
+  /**
620
+   * Unified Bed Leveling
621
+   */
622
+
623
+  #if IS_SCARA
624
+    #error "AUTO_BED_LEVELING_UBL does not yet support SCARA printers."
625
+  #elif DISABLED(EEPROM_SETTINGS)
626
+    #error "AUTO_BED_LEVELING_UBL requires EEPROM_SETTINGS. Please update your configuration."
627
+  #elif !WITHIN(GRID_MAX_POINTS_X, 3, 15) || !WITHIN(GRID_MAX_POINTS_Y, 3, 15)
628
+    #error "GRID_MAX_POINTS_[XY] must be a whole number between 3 and 15."
629
+  #else
630
+    static_assert(WITHIN(UBL_PROBE_PT_1_X, MIN_PROBE_X, MAX_PROBE_X), "UBL_PROBE_PT_1_X can't be reached by the Z probe.");
631
+    static_assert(WITHIN(UBL_PROBE_PT_2_X, MIN_PROBE_X, MAX_PROBE_X), "UBL_PROBE_PT_2_X can't be reached by the Z probe.");
632
+    static_assert(WITHIN(UBL_PROBE_PT_3_X, MIN_PROBE_X, MAX_PROBE_X), "UBL_PROBE_PT_3_X can't be reached by the Z probe.");
633
+    static_assert(WITHIN(UBL_PROBE_PT_1_Y, MIN_PROBE_Y, MAX_PROBE_Y), "UBL_PROBE_PT_1_Y can't be reached by the Z probe.");
634
+    static_assert(WITHIN(UBL_PROBE_PT_2_Y, MIN_PROBE_Y, MAX_PROBE_Y), "UBL_PROBE_PT_2_Y can't be reached by the Z probe.");
635
+    static_assert(WITHIN(UBL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y), "UBL_PROBE_PT_3_Y can't be reached by the Z probe.");
636
+  #endif
637
+
638
+#elif HAS_ABL
639
+
640
+  /**
641
+   * Auto Bed Leveling
642
+   */
643
+
644
+  #if ENABLED(USE_RAW_KINEMATICS)
645
+    #error "USE_RAW_KINEMATICS is not compatible with AUTO_BED_LEVELING"
646
+  #endif
647
+
648
+  /**
649
+   * Delta and SCARA have limited bed leveling options
650
+   */
651
+  #if IS_SCARA && DISABLED(AUTO_BED_LEVELING_BILINEAR)
652
+    #error "Only AUTO_BED_LEVELING_BILINEAR currently supports SCARA bed leveling."
653
+  #endif
654
+
655
+  /**
656
+   * Check auto bed leveling probe points
657
+   */
658
+  #if ABL_GRID
659
+
660
+    #ifdef DELTA_PROBEABLE_RADIUS
661
+      static_assert(LEFT_PROBE_BED_POSITION >= -DELTA_PROBEABLE_RADIUS, "LEFT_PROBE_BED_POSITION must be within DELTA_PROBEABLE_RADIUS.");
662
+      static_assert(RIGHT_PROBE_BED_POSITION <= DELTA_PROBEABLE_RADIUS, "RIGHT_PROBE_BED_POSITION must be within DELTA_PROBEABLE_RADIUS.");
663
+      static_assert(FRONT_PROBE_BED_POSITION >= -DELTA_PROBEABLE_RADIUS, "FRONT_PROBE_BED_POSITION must be within DELTA_PROBEABLE_RADIUS.");
664
+      static_assert(BACK_PROBE_BED_POSITION <= DELTA_PROBEABLE_RADIUS, "BACK_PROBE_BED_POSITION must be within DELTA_PROBEABLE_RADIUS.");
665
+    #else
666
+      static_assert(LEFT_PROBE_BED_POSITION < RIGHT_PROBE_BED_POSITION, "LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION.");
667
+      static_assert(FRONT_PROBE_BED_POSITION < BACK_PROBE_BED_POSITION, "FRONT_PROBE_BED_POSITION must be less than BACK_PROBE_BED_POSITION.");
668
+      static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION can't be reached by the Z probe.");
669
+      static_assert(RIGHT_PROBE_BED_POSITION <= MAX_PROBE_X, "RIGHT_PROBE_BED_POSITION can't be reached by the Z probe.");
670
+      static_assert(FRONT_PROBE_BED_POSITION >= MIN_PROBE_Y, "FRONT_PROBE_BED_POSITION can't be reached by the Z probe.");
671
+      static_assert(BACK_PROBE_BED_POSITION <= MAX_PROBE_Y, "BACK_PROBE_BED_POSITION can't be reached by the Z probe.");
672
+    #endif
673
+
674
+  #else // AUTO_BED_LEVELING_3POINT
675
+
676
+    static_assert(WITHIN(ABL_PROBE_PT_1_X, MIN_PROBE_X, MAX_PROBE_X), "ABL_PROBE_PT_1_X can't be reached by the Z probe.");
677
+    static_assert(WITHIN(ABL_PROBE_PT_2_X, MIN_PROBE_X, MAX_PROBE_X), "ABL_PROBE_PT_2_X can't be reached by the Z probe.");
678
+    static_assert(WITHIN(ABL_PROBE_PT_3_X, MIN_PROBE_X, MAX_PROBE_X), "ABL_PROBE_PT_3_X can't be reached by the Z probe.");
679
+    static_assert(WITHIN(ABL_PROBE_PT_1_Y, MIN_PROBE_Y, MAX_PROBE_Y), "ABL_PROBE_PT_1_Y can't be reached by the Z probe.");
680
+    static_assert(WITHIN(ABL_PROBE_PT_2_Y, MIN_PROBE_Y, MAX_PROBE_Y), "ABL_PROBE_PT_2_Y can't be reached by the Z probe.");
681
+    static_assert(WITHIN(ABL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y), "ABL_PROBE_PT_3_Y can't be reached by the Z probe.");
682
+
683
+  #endif // AUTO_BED_LEVELING_3POINT
684
+
685
+#elif ENABLED(MESH_BED_LEVELING)
686
+
687
+  /**
688
+   * Mesh Bed Leveling
689
+   */
690
+
691
+  #if ENABLED(DELTA)
692
+    #error "MESH_BED_LEVELING does not yet support DELTA printers."
693
+  #elif GRID_MAX_POINTS_X > 9 || GRID_MAX_POINTS_Y > 9
694
+    #error "GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y must be less than 10 for MBL."
695
+  #endif
696
+
697
+#endif
698
+
699
+/**
597 700
  * LCD_BED_LEVELING requirements
598 701
  */
599 702
 #if ENABLED(LCD_BED_LEVELING)
@@ -631,83 +734,6 @@ static_assert(1 >= 0
631 734
 #endif // Z_SAFE_HOMING
632 735
 
633 736
 /**
634
- * Auto Bed Leveling
635
- */
636
-#if HAS_ABL
637
-
638
-  #if ENABLED(USE_RAW_KINEMATICS)
639
-    #error "USE_RAW_KINEMATICS is not compatible with AUTO_BED_LEVELING"
640
-  #endif
641
-
642
-  /**
643
-   * Delta and SCARA have limited bed leveling options
644
-   */
645
-  #if IS_SCARA && DISABLED(AUTO_BED_LEVELING_BILINEAR)
646
-    #error "Only AUTO_BED_LEVELING_BILINEAR currently supports SCARA bed leveling."
647
-  #endif
648
-
649
-  /**
650
-   * Check auto bed leveling sub-options, especially probe points
651
-   */
652
-  #if ABL_GRID
653
-    #ifndef DELTA_PROBEABLE_RADIUS
654
-      #if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
655
-        #error "LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION."
656
-      #elif FRONT_PROBE_BED_POSITION > BACK_PROBE_BED_POSITION
657
-        #error "FRONT_PROBE_BED_POSITION must be less than BACK_PROBE_BED_POSITION."
658
-      #endif
659
-      #if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
660
-        #error "The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."
661
-      #elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
662
-        #error "The given RIGHT_PROBE_BED_POSITION can't be reached by the Z probe."
663
-      #elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
664
-        #error "The given FRONT_PROBE_BED_POSITION can't be reached by the Z probe."
665
-      #elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
666
-        #error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
667
-      #endif
668
-    #endif
669
-  #elif ENABLED(AUTO_BED_LEVELING_UBL)
670
-    #if DISABLED(EEPROM_SETTINGS)
671
-      #error "AUTO_BED_LEVELING_UBL requires EEPROM_SETTINGS. Please update your configuration."
672
-    #elif !WITHIN(GRID_MAX_POINTS_X, 3, 15) || !WITHIN(GRID_MAX_POINTS_Y, 3, 15)
673
-      #error "GRID_MAX_POINTS_[XY] must be a whole number between 3 and 15."
674
-    #endif
675
-    #if IS_CARTESIAN
676
-      #if !WITHIN(GRID_MAX_POINTS_X, 3, 15) || !WITHIN(GRID_MAX_POINTS_Y, 3, 15)
677
-        #error "GRID_MAX_POINTS_[XY] must be a whole number between 3 and 15."
678
-      #elif !WITHIN(UBL_PROBE_PT_1_X, MIN_PROBE_X, MAX_PROBE_X)
679
-        #error "The given UBL_PROBE_PT_1_X can't be reached by the Z probe."
680
-      #elif !WITHIN(UBL_PROBE_PT_2_X, MIN_PROBE_X, MAX_PROBE_X)
681
-        #error "The given UBL_PROBE_PT_2_X can't be reached by the Z probe."
682
-      #elif !WITHIN(UBL_PROBE_PT_3_X, MIN_PROBE_X, MAX_PROBE_X)
683
-        #error "The given UBL_PROBE_PT_3_X can't be reached by the Z probe."
684
-      #elif !WITHIN(UBL_PROBE_PT_1_Y, MIN_PROBE_Y, MAX_PROBE_Y)
685
-        #error "The given UBL_PROBE_PT_1_Y can't be reached by the Z probe."
686
-      #elif !WITHIN(UBL_PROBE_PT_2_Y, MIN_PROBE_Y, MAX_PROBE_Y)
687
-        #error "The given UBL_PROBE_PT_2_Y can't be reached by the Z probe."
688
-      #elif !WITHIN(UBL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y)
689
-        #error "The given UBL_PROBE_PT_3_Y can't be reached by the Z probe."
690
-      #endif
691
-    #endif
692
-  #else // AUTO_BED_LEVELING_3POINT
693
-    #if !WITHIN(ABL_PROBE_PT_1_X, MIN_PROBE_X, MAX_PROBE_X)
694
-      #error "The given ABL_PROBE_PT_1_X can't be reached by the Z probe."
695
-    #elif !WITHIN(ABL_PROBE_PT_2_X, MIN_PROBE_X, MAX_PROBE_X)
696
-      #error "The given ABL_PROBE_PT_2_X can't be reached by the Z probe."
697
-    #elif !WITHIN(ABL_PROBE_PT_3_X, MIN_PROBE_X, MAX_PROBE_X)
698
-      #error "The given ABL_PROBE_PT_3_X can't be reached by the Z probe."
699
-    #elif !WITHIN(ABL_PROBE_PT_1_Y, MIN_PROBE_Y, MAX_PROBE_Y)
700
-      #error "The given ABL_PROBE_PT_1_Y can't be reached by the Z probe."
701
-    #elif !WITHIN(ABL_PROBE_PT_2_Y, MIN_PROBE_Y, MAX_PROBE_Y)
702
-      #error "The given ABL_PROBE_PT_2_Y can't be reached by the Z probe."
703
-    #elif !WITHIN(ABL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y)
704
-      #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
705
-    #endif
706
-  #endif // AUTO_BED_LEVELING_3POINT
707
-
708
-#endif // HAS_ABL
709
-
710
-/**
711 737
  * Advance Extrusion
712 738
  */
713 739
 #if ENABLED(ADVANCE) && ENABLED(LIN_ADVANCE)
@@ -740,40 +766,6 @@ static_assert(1 >= 0
740 766
 #endif
741 767
 
742 768
 /**
743
- * Don't set more than one kinematic type
744
- */
745
-static_assert(1 >= 0
746
-  #if ENABLED(DELTA)
747
-    + 1
748
-  #endif
749
-  #if ENABLED(MORGAN_SCARA)
750
-    + 1
751
-  #endif
752
-  #if ENABLED(MAKERARM_SCARA)
753
-    + 1
754
-  #endif
755
-  #if ENABLED(COREXY)
756
-    + 1
757
-  #endif
758
-  #if ENABLED(COREXZ)
759
-    + 1
760
-  #endif
761
-  #if ENABLED(COREYZ)
762
-    + 1
763
-  #endif
764
-  #if ENABLED(COREYX)
765
-    + 1
766
-  #endif
767
-  #if ENABLED(COREZX)
768
-    + 1
769
-  #endif
770
-  #if ENABLED(COREZY)
771
-    + 1
772
-  #endif
773
-  , "Please enable only one of DELTA, MORGAN_SCARA, MAKERARM_SCARA, COREXY, COREYX, COREXZ, COREZX, COREYZ, or COREZY."
774
-);
775
-
776
-/**
777 769
  * Allen Key
778 770
  * Deploying the Allen Key probe uses big moves in z direction. Too dangerous for an unhomed z-axis.
779 771
  */
@@ -1147,22 +1139,64 @@ static_assert(1 >= 0
1147 1139
   , "Please select no more than one LCD controller option."
1148 1140
 );
1149 1141
 
1150
-#if ENABLED(HAVE_TMC2130) && !( \
1151
-       ENABLED(  X_IS_TMC2130 ) \
1152
-    || ENABLED( X2_IS_TMC2130 ) \
1153
-    || ENABLED(  Y_IS_TMC2130 ) \
1154
-    || ENABLED( Y2_IS_TMC2130 ) \
1155
-    || ENABLED(  Z_IS_TMC2130 ) \
1156
-    || ENABLED( Z2_IS_TMC2130 ) \
1157
-    || ENABLED( E0_IS_TMC2130 ) \
1158
-    || ENABLED( E1_IS_TMC2130 ) \
1159
-    || ENABLED( E2_IS_TMC2130 ) \
1160
-    || ENABLED( E3_IS_TMC2130 ) )
1161
-  #error "Choose at least one TMC2130 stepper."
1142
+/**
1143
+ * Make sure HAVE_TMCDRIVER is warranted
1144
+ */
1145
+#if ENABLED(HAVE_TMCDRIVER) && !( \
1146
+         ENABLED(  X_IS_TMC ) \
1147
+      || ENABLED( X2_IS_TMC ) \
1148
+      || ENABLED(  Y_IS_TMC ) \
1149
+      || ENABLED( Y2_IS_TMC ) \
1150
+      || ENABLED(  Z_IS_TMC ) \
1151
+      || ENABLED( Z2_IS_TMC ) \
1152
+      || ENABLED( E0_IS_TMC ) \
1153
+      || ENABLED( E1_IS_TMC ) \
1154
+      || ENABLED( E2_IS_TMC ) \
1155
+      || ENABLED( E3_IS_TMC ) \
1156
+      || ENABLED( E4_IS_TMC ) \
1157
+  )
1158
+  #error "HAVE_TMCDRIVER requires at least one TMC stepper to be set."
1162 1159
 #endif
1163 1160
 
1164
-#if ENABLED(HYBRID_THRESHOLD) && DISABLED(STEALTHCHOP)
1165
-  #error "Enable STEALTHCHOP to use HYBRID_THRESHOLD."
1161
+/**
1162
+ * Make sure HAVE_TMC2130 is warranted
1163
+ */
1164
+#if ENABLED(HAVE_TMC2130)
1165
+  #if !( ENABLED(  X_IS_TMC2130 ) \
1166
+      || ENABLED( X2_IS_TMC2130 ) \
1167
+      || ENABLED(  Y_IS_TMC2130 ) \
1168
+      || ENABLED( Y2_IS_TMC2130 ) \
1169
+      || ENABLED(  Z_IS_TMC2130 ) \
1170
+      || ENABLED( Z2_IS_TMC2130 ) \
1171
+      || ENABLED( E0_IS_TMC2130 ) \
1172
+      || ENABLED( E1_IS_TMC2130 ) \
1173
+      || ENABLED( E2_IS_TMC2130 ) \
1174
+      || ENABLED( E3_IS_TMC2130 ) \
1175
+      || ENABLED( E4_IS_TMC2130 ) \
1176
+  )
1177
+    #error "HAVE_TMC2130 requires at least one TMC2130 stepper to be set."
1178
+  #elif ENABLED(HYBRID_THRESHOLD) && DISABLED(STEALTHCHOP)
1179
+    #error "Enable STEALTHCHOP to use HYBRID_THRESHOLD."
1180
+  #endif
1181
+#endif
1182
+
1183
+/**
1184
+ * Make sure HAVE_L6470DRIVER is warranted
1185
+ */
1186
+#if ENABLED(HAVE_L6470DRIVER) && !( \
1187
+         ENABLED(  X_IS_L6470 ) \
1188
+      || ENABLED( X2_IS_L6470 ) \
1189
+      || ENABLED(  Y_IS_L6470 ) \
1190
+      || ENABLED( Y2_IS_L6470 ) \
1191
+      || ENABLED(  Z_IS_L6470 ) \
1192
+      || ENABLED( Z2_IS_L6470 ) \
1193
+      || ENABLED( E0_IS_L6470 ) \
1194
+      || ENABLED( E1_IS_L6470 ) \
1195
+      || ENABLED( E2_IS_L6470 ) \
1196
+      || ENABLED( E3_IS_L6470 ) \
1197
+      || ENABLED( E4_IS_L6470 ) \
1198
+  )
1199
+  #error "HAVE_L6470DRIVER requires at least one L6470 stepper to be set."
1166 1200
 #endif
1167 1201
 
1168 1202
 /**

Loading…
取消
儲存