浏览代码

Tweaks to endstops code

Scott Lahteine 6 年前
父节点
当前提交
e874f9664c
共有 2 个文件被更改,包括 34 次插入33 次删除
  1. 33
    30
      Marlin/src/module/endstops.cpp
  2. 1
    3
      Marlin/src/module/motion.cpp

+ 33
- 30
Marlin/src/module/endstops.cpp 查看文件

775
     static uint8_t local_LED_status = 0;
775
     static uint8_t local_LED_status = 0;
776
     uint16_t live_state_local = 0;
776
     uint16_t live_state_local = 0;
777
 
777
 
778
+    #define ES_GET_STATE(S) if (READ(S##_PIN)) SBI(live_state_local, S)
779
+
778
     #if HAS_X_MIN
780
     #if HAS_X_MIN
779
-      if (READ(X_MIN_PIN)) SBI(live_state_local, X_MIN);
781
+      ES_GET_STATE(X_MIN);
780
     #endif
782
     #endif
781
     #if HAS_X_MAX
783
     #if HAS_X_MAX
782
-      if (READ(X_MAX_PIN)) SBI(live_state_local, X_MAX);
784
+      ES_GET_STATE(X_MAX);
783
     #endif
785
     #endif
784
     #if HAS_Y_MIN
786
     #if HAS_Y_MIN
785
-      if (READ(Y_MIN_PIN)) SBI(live_state_local, Y_MIN);
787
+      ES_GET_STATE(Y_MIN);
786
     #endif
788
     #endif
787
     #if HAS_Y_MAX
789
     #if HAS_Y_MAX
788
-      if (READ(Y_MAX_PIN)) SBI(live_state_local, Y_MAX);
790
+      ES_GET_STATE(Y_MAX);
789
     #endif
791
     #endif
790
     #if HAS_Z_MIN
792
     #if HAS_Z_MIN
791
-      if (READ(Z_MIN_PIN)) SBI(live_state_local, Z_MIN);
793
+      ES_GET_STATE(Z_MIN);
792
     #endif
794
     #endif
793
     #if HAS_Z_MAX
795
     #if HAS_Z_MAX
794
-      if (READ(Z_MAX_PIN)) SBI(live_state_local, Z_MAX);
796
+      ES_GET_STATE(Z_MAX);
795
     #endif
797
     #endif
796
     #if HAS_Z_MIN_PROBE_PIN
798
     #if HAS_Z_MIN_PROBE_PIN
797
-      if (READ(Z_MIN_PROBE_PIN)) SBI(live_state_local, Z_MIN_PROBE);
799
+      ES_GET_STATE(Z_MIN_PROBE);
798
     #endif
800
     #endif
799
     #if HAS_X2_MIN
801
     #if HAS_X2_MIN
800
-      if (READ(X2_MIN_PIN)) SBI(live_state_local, X2_MIN);
802
+      ES_GET_STATE(X2_MIN);
801
     #endif
803
     #endif
802
     #if HAS_X2_MAX
804
     #if HAS_X2_MAX
803
-      if (READ(X2_MAX_PIN)) SBI(live_state_local, X2_MAX);
805
+      ES_GET_STATE(X2_MAX);
804
     #endif
806
     #endif
805
     #if HAS_Y2_MIN
807
     #if HAS_Y2_MIN
806
-      if (READ(Y2_MIN_PIN)) SBI(live_state_local, Y2_MIN);
808
+      ES_GET_STATE(Y2_MIN);
807
     #endif
809
     #endif
808
     #if HAS_Y2_MAX
810
     #if HAS_Y2_MAX
809
-      if (READ(Y2_MAX_PIN)) SBI(live_state_local, Y2_MAX);
811
+      ES_GET_STATE(Y2_MAX);
810
     #endif
812
     #endif
811
     #if HAS_Z2_MIN
813
     #if HAS_Z2_MIN
812
-      if (READ(Z2_MIN_PIN)) SBI(live_state_local, Z2_MIN);
814
+      ES_GET_STATE(Z2_MIN);
813
     #endif
815
     #endif
814
     #if HAS_Z2_MAX
816
     #if HAS_Z2_MAX
815
-      if (READ(Z2_MAX_PIN)) SBI(live_state_local, Z2_MAX);
817
+      ES_GET_STATE(Z2_MAX);
816
     #endif
818
     #endif
817
     #if HAS_Z3_MIN
819
     #if HAS_Z3_MIN
818
-      if (READ(Z3_MIN_PIN)) SBI(live_state_local, Z3_MIN);
820
+      ES_GET_STATE(Z3_MIN);
819
     #endif
821
     #endif
820
     #if HAS_Z3_MAX
822
     #if HAS_Z3_MAX
821
-      if (READ(Z3_MAX_PIN)) SBI(live_state_local, Z3_MAX);
823
+      ES_GET_STATE(Z3_MAX);
822
     #endif
824
     #endif
823
 
825
 
824
     uint16_t endstop_change = live_state_local ^ old_live_state_local;
826
     uint16_t endstop_change = live_state_local ^ old_live_state_local;
827
+    #define ES_REPORT_CHANGE(S) if (TEST(endstop_change, S)) SERIAL_ECHOPAIR("  " STRINGIFY(S) ":", TEST(live_state_local, S))
825
 
828
 
826
     if (endstop_change) {
829
     if (endstop_change) {
827
       #if HAS_X_MIN
830
       #if HAS_X_MIN
828
-        if (TEST(endstop_change, X_MIN)) SERIAL_ECHOPAIR("  X_MIN:", TEST(live_state_local, X_MIN));
831
+        ES_REPORT_CHANGE(X_MIN);
829
       #endif
832
       #endif
830
       #if HAS_X_MAX
833
       #if HAS_X_MAX
831
-        if (TEST(endstop_change, X_MAX)) SERIAL_ECHOPAIR("  X_MAX:", TEST(live_state_local, X_MAX));
834
+        ES_REPORT_CHANGE(X_MAX);
832
       #endif
835
       #endif
833
       #if HAS_Y_MIN
836
       #if HAS_Y_MIN
834
-        if (TEST(endstop_change, Y_MIN)) SERIAL_ECHOPAIR("  Y_MIN:", TEST(live_state_local, Y_MIN));
837
+        ES_REPORT_CHANGE(Y_MIN);
835
       #endif
838
       #endif
836
       #if HAS_Y_MAX
839
       #if HAS_Y_MAX
837
-        if (TEST(endstop_change, Y_MAX)) SERIAL_ECHOPAIR("  Y_MAX:", TEST(live_state_local, Y_MAX));
840
+        ES_REPORT_CHANGE(Y_MAX);
838
       #endif
841
       #endif
839
       #if HAS_Z_MIN
842
       #if HAS_Z_MIN
840
-        if (TEST(endstop_change, Z_MIN)) SERIAL_ECHOPAIR("  Z_MIN:", TEST(live_state_local, Z_MIN));
843
+        ES_REPORT_CHANGE(Z_MIN);
841
       #endif
844
       #endif
842
       #if HAS_Z_MAX
845
       #if HAS_Z_MAX
843
-        if (TEST(endstop_change, Z_MAX)) SERIAL_ECHOPAIR("  Z_MAX:", TEST(live_state_local, Z_MAX));
846
+        ES_REPORT_CHANGE(Z_MAX);
844
       #endif
847
       #endif
845
       #if HAS_Z_MIN_PROBE_PIN
848
       #if HAS_Z_MIN_PROBE_PIN
846
-        if (TEST(endstop_change, Z_MIN_PROBE)) SERIAL_ECHOPAIR("  PROBE:", TEST(live_state_local, Z_MIN_PROBE));
849
+        ES_REPORT_CHANGE(Z_MIN_PROBE);
847
       #endif
850
       #endif
848
       #if HAS_X2_MIN
851
       #if HAS_X2_MIN
849
-        if (TEST(endstop_change, X2_MIN)) SERIAL_ECHOPAIR("  X2_MIN:", TEST(live_state_local, X2_MIN));
852
+        ES_REPORT_CHANGE(X2_MIN);
850
       #endif
853
       #endif
851
       #if HAS_X2_MAX
854
       #if HAS_X2_MAX
852
-        if (TEST(endstop_change, X2_MAX)) SERIAL_ECHOPAIR("  X2_MAX:", TEST(live_state_local, X2_MAX));
855
+        ES_REPORT_CHANGE(X2_MAX);
853
       #endif
856
       #endif
854
       #if HAS_Y2_MIN
857
       #if HAS_Y2_MIN
855
-        if (TEST(endstop_change, Y2_MIN)) SERIAL_ECHOPAIR("  Y2_MIN:", TEST(live_state_local, Y2_MIN));
858
+        ES_REPORT_CHANGE(Y2_MIN);
856
       #endif
859
       #endif
857
       #if HAS_Y2_MAX
860
       #if HAS_Y2_MAX
858
-        if (TEST(endstop_change, Y2_MAX)) SERIAL_ECHOPAIR("  Y2_MAX:", TEST(live_state_local, Y2_MAX));
861
+        ES_REPORT_CHANGE(Y2_MAX);
859
       #endif
862
       #endif
860
       #if HAS_Z2_MIN
863
       #if HAS_Z2_MIN
861
-        if (TEST(endstop_change, Z2_MIN)) SERIAL_ECHOPAIR("  Z2_MIN:", TEST(live_state_local, Z2_MIN));
864
+        ES_REPORT_CHANGE(Z2_MIN);
862
       #endif
865
       #endif
863
       #if HAS_Z2_MAX
866
       #if HAS_Z2_MAX
864
-        if (TEST(endstop_change, Z2_MAX)) SERIAL_ECHOPAIR("  Z2_MAX:", TEST(live_state_local, Z2_MAX));
867
+        ES_REPORT_CHANGE(Z2_MAX);
865
       #endif
868
       #endif
866
       #if HAS_Z3_MIN
869
       #if HAS_Z3_MIN
867
-        if (TEST(endstop_change, Z3_MIN)) SERIAL_ECHOPAIR("  Z3_MIN:", TEST(live_state_local, Z3_MIN));
870
+        ES_REPORT_CHANGE(Z3_MIN);
868
       #endif
871
       #endif
869
       #if HAS_Z3_MAX
872
       #if HAS_Z3_MAX
870
-        if (TEST(endstop_change, Z3_MAX)) SERIAL_ECHOPAIR("  Z3_MAX:", TEST(live_state_local, Z3_MAX));
873
+        ES_REPORT_CHANGE(Z3_MAX);
871
       #endif
874
       #endif
872
       SERIAL_ECHOPGM("\n\n");
875
       SERIAL_ECHOPGM("\n\n");
873
       analogWrite(LED_PIN, local_LED_status);
876
       analogWrite(LED_PIN, local_LED_status);

+ 1
- 3
Marlin/src/module/motion.cpp 查看文件

1550
       do_homing_move(axis, delta_endstop_adj[axis] - (MIN_STEPS_PER_SEGMENT + 1) * planner.steps_to_mm[axis] * Z_HOME_DIR);
1550
       do_homing_move(axis, delta_endstop_adj[axis] - (MIN_STEPS_PER_SEGMENT + 1) * planner.steps_to_mm[axis] * Z_HOME_DIR);
1551
     }
1551
     }
1552
 
1552
 
1553
-  #else
1553
+  #else // CARTESIAN / CORE
1554
 
1554
 
1555
-    // For cartesian/core machines,
1556
-    // set the axis to its home position
1557
     set_axis_is_at_home(axis);
1555
     set_axis_is_at_home(axis);
1558
     sync_plan_position();
1556
     sync_plan_position();
1559
 
1557
 

正在加载...
取消
保存