Ver código fonte

Merge pull request #4562 from thinkyhead/rc_fix_z_dual_endstops

Fix Z_DUAL_ENDSTOPS with Z MIN Homing
Scott Lahteine 8 anos atrás
pai
commit
67c4acf750
3 arquivos alterados com 87 adições e 52 exclusões
  1. 77
    46
      Marlin/Conditionals_post.h
  2. 1
    1
      Marlin/Marlin_main.cpp
  3. 9
    5
      Marlin/SanityCheck.h

+ 77
- 46
Marlin/Conditionals_post.h Ver arquivo

@@ -35,33 +35,6 @@
35 35
   #endif
36 36
 
37 37
   /**
38
-   * Set ENDSTOPPULLUPS for unused endstop switches
39
-   */
40
-  #if ENABLED(ENDSTOPPULLUPS)
41
-    #if ENABLED(USE_XMAX_PLUG)
42
-      #define ENDSTOPPULLUP_XMAX
43
-    #endif
44
-    #if ENABLED(USE_YMAX_PLUG)
45
-      #define ENDSTOPPULLUP_YMAX
46
-    #endif
47
-    #if ENABLED(USE_ZMAX_PLUG)
48
-      #define ENDSTOPPULLUP_ZMAX
49
-    #endif
50
-    #if ENABLED(USE_XMIN_PLUG)
51
-      #define ENDSTOPPULLUP_XMIN
52
-    #endif
53
-    #if ENABLED(USE_YMIN_PLUG)
54
-      #define ENDSTOPPULLUP_YMIN
55
-    #endif
56
-    #if ENABLED(USE_ZMIN_PLUG)
57
-      #define ENDSTOPPULLUP_ZMIN
58
-    #endif
59
-    #if DISABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)
60
-      #define ENDSTOPPULLUP_ZMIN_PROBE
61
-    #endif
62
-  #endif
63
-
64
-  /**
65 38
    * Axis lengths
66 39
    */
67 40
   #define X_MAX_LENGTH (X_MAX_POS - (X_MIN_POS))
@@ -363,31 +336,89 @@
363 336
     #define _YMAX_ 201
364 337
     #define _ZMAX_ 301
365 338
     #if Z2_USE_ENDSTOP == _XMAX_
366
-      #define Z2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
367
-      #define Z2_MAX_PIN X_MAX_PIN
368
-      #undef USE_XMAX_PLUG
339
+      #define USE_XMAX_PLUG
369 340
     #elif Z2_USE_ENDSTOP == _YMAX_
370
-      #define Z2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
371
-      #define Z2_MAX_PIN Y_MAX_PIN
372
-      #undef USE_YMAX_PLUG
341
+      #define USE_YMAX_PLUG
373 342
     #elif Z2_USE_ENDSTOP == _ZMAX_
374
-      #define Z2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
375
-      #define Z2_MAX_PIN Z_MAX_PIN
376
-      #undef USE_ZMAX_PLUG
343
+      #define USE_ZMAX_PLUG
377 344
     #elif Z2_USE_ENDSTOP == _XMIN_
378
-      #define Z2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
379
-      #define Z2_MAX_PIN X_MIN_PIN
380
-      #undef USE_XMIN_PLUG
345
+      #define USE_XMIN_PLUG
381 346
     #elif Z2_USE_ENDSTOP == _YMIN_
382
-      #define Z2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
383
-      #define Z2_MAX_PIN Y_MIN_PIN
384
-      #undef USE_YMIN_PLUG
347
+      #define USE_YMIN_PLUG
385 348
     #elif Z2_USE_ENDSTOP == _ZMIN_
386
-      #define Z2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
387
-      #define Z2_MAX_PIN Z_MIN_PIN
388
-      #undef USE_ZMIN_PLUG
349
+      #define USE_ZMIN_PLUG
350
+    #endif
351
+    #if Z_HOME_DIR > 0
352
+      #if Z2_USE_ENDSTOP == _XMAX_
353
+        #define Z2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
354
+        #define Z2_MAX_PIN X_MAX_PIN
355
+      #elif Z2_USE_ENDSTOP == _YMAX_
356
+        #define Z2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
357
+        #define Z2_MAX_PIN Y_MAX_PIN
358
+      #elif Z2_USE_ENDSTOP == _ZMAX_
359
+        #define Z2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
360
+        #define Z2_MAX_PIN Z_MAX_PIN
361
+      #elif Z2_USE_ENDSTOP == _XMIN_
362
+        #define Z2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
363
+        #define Z2_MAX_PIN X_MIN_PIN
364
+      #elif Z2_USE_ENDSTOP == _YMIN_
365
+        #define Z2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
366
+        #define Z2_MAX_PIN Y_MIN_PIN
367
+      #elif Z2_USE_ENDSTOP == _ZMIN_
368
+        #define Z2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
369
+        #define Z2_MAX_PIN Z_MIN_PIN
370
+      #else
371
+        #define Z2_MAX_ENDSTOP_INVERTING false
372
+      #endif
389 373
     #else
390
-      #define Z2_MAX_ENDSTOP_INVERTING false
374
+      #if Z2_USE_ENDSTOP == _XMAX_
375
+        #define Z2_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
376
+        #define Z2_MIN_PIN X_MAX_PIN
377
+      #elif Z2_USE_ENDSTOP == _YMAX_
378
+        #define Z2_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
379
+        #define Z2_MIN_PIN Y_MAX_PIN
380
+      #elif Z2_USE_ENDSTOP == _ZMAX_
381
+        #define Z2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
382
+        #define Z2_MIN_PIN Z_MAX_PIN
383
+      #elif Z2_USE_ENDSTOP == _XMIN_
384
+        #define Z2_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
385
+        #define Z2_MIN_PIN X_MIN_PIN
386
+      #elif Z2_USE_ENDSTOP == _YMIN_
387
+        #define Z2_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
388
+        #define Z2_MIN_PIN Y_MIN_PIN
389
+      #elif Z2_USE_ENDSTOP == _ZMIN_
390
+        #define Z2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
391
+        #define Z2_MIN_PIN Z_MIN_PIN
392
+      #else
393
+        #define Z2_MIN_ENDSTOP_INVERTING false
394
+      #endif
395
+    #endif
396
+  #endif
397
+
398
+  /**
399
+   * Set ENDSTOPPULLUPS for active endstop switches
400
+   */
401
+  #if ENABLED(ENDSTOPPULLUPS)
402
+    #if ENABLED(USE_XMAX_PLUG)
403
+      #define ENDSTOPPULLUP_XMAX
404
+    #endif
405
+    #if ENABLED(USE_YMAX_PLUG)
406
+      #define ENDSTOPPULLUP_YMAX
407
+    #endif
408
+    #if ENABLED(USE_ZMAX_PLUG)
409
+      #define ENDSTOPPULLUP_ZMAX
410
+    #endif
411
+    #if ENABLED(USE_XMIN_PLUG)
412
+      #define ENDSTOPPULLUP_XMIN
413
+    #endif
414
+    #if ENABLED(USE_YMIN_PLUG)
415
+      #define ENDSTOPPULLUP_YMIN
416
+    #endif
417
+    #if ENABLED(USE_ZMIN_PLUG)
418
+      #define ENDSTOPPULLUP_ZMIN
419
+    #endif
420
+    #if DISABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)
421
+      #define ENDSTOPPULLUP_ZMIN_PROBE
391 422
     #endif
392 423
   #endif
393 424
 

+ 1
- 1
Marlin/Marlin_main.cpp Ver arquivo

@@ -402,7 +402,7 @@ static uint8_t target_extruder;
402 402
   #define XY_PROBE_FEEDRATE_MM_S PLANNER_XY_FEEDRATE()
403 403
 #endif
404 404
 
405
-#if ENABLED(Z_DUAL_ENDSTOPS) && DISABLED(DELTA)
405
+#if ENABLED(Z_DUAL_ENDSTOPS)
406 406
   float z_endstop_adj = 0;
407 407
 #endif
408 408
 

+ 9
- 5
Marlin/SanityCheck.h Ver arquivo

@@ -728,13 +728,17 @@
728 728
  * Endstops
729 729
  */
730 730
 #if DISABLED(USE_XMIN_PLUG) && DISABLED(USE_XMAX_PLUG) && !(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP >= _XMAX_ && Z2_USE_ENDSTOP <= _XMIN_)
731
- #error "You must enable USE_XMIN_PLUG or USE_XMAX_PLUG"
731
+ #error "You must enable USE_XMIN_PLUG or USE_XMAX_PLUG."
732 732
 #elif DISABLED(USE_YMIN_PLUG) && DISABLED(USE_YMAX_PLUG) && !(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP >= _YMAX_ && Z2_USE_ENDSTOP <= _YMIN_)
733
- #error "You must enable USE_YMIN_PLUG or USE_YMAX_PLUG"
733
+ #error "You must enable USE_YMIN_PLUG or USE_YMAX_PLUG."
734 734
 #elif DISABLED(USE_ZMIN_PLUG) && DISABLED(USE_ZMAX_PLUG) && !(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP >= _ZMAX_ && Z2_USE_ENDSTOP <= _ZMIN_)
735
- #error "You must enable USE_ZMIN_PLUG or USE_ZMAX_PLUG"
736
-#elif ENABLED(Z_DUAL_ENDSTOPS) && !Z2_USE_ENDSTOP
737
- #error "You must set Z2_USE_ENDSTOP with Z_DUAL_ENDSTOPS"
735
+ #error "You must enable USE_ZMIN_PLUG or USE_ZMAX_PLUG."
736
+#elif ENABLED(Z_DUAL_ENDSTOPS)
737
+  #if !Z2_USE_ENDSTOP
738
+    #error "You must set Z2_USE_ENDSTOP with Z_DUAL_ENDSTOPS."
739
+  #elif ENABLED(DELTA)
740
+    #error "Z_DUAL_ENDSTOPS is not compatible with DELTA."
741
+  #endif
738 742
 #endif
739 743
 
740 744
 /**

Carregando…
Cancelar
Salvar