浏览代码

[2.0.x] Optional heater signal inversion (#10260)

Karl Andersson 7 年前
父节点
当前提交
7cbbc2af7a
共有 2 个文件被更改,包括 36 次插入11 次删除
  1. 30
    5
      Marlin/src/inc/Conditionals_post.h
  2. 6
    6
      Marlin/src/module/temperature.cpp

+ 30
- 5
Marlin/src/inc/Conditionals_post.h 查看文件

832
 #endif
832
 #endif
833
 
833
 
834
 /**
834
 /**
835
+ * Heater signal inversion defaults
836
+ */
837
+
838
+#if HAS_HEATER_0 && !defined(HEATER_0_INVERTING)
839
+  #define HEATER_0_INVERTING false
840
+#endif
841
+
842
+#if HAS_HEATER_1 && !defined(HEATER_1_INVERTING)
843
+  #define HEATER_1_INVERTING false
844
+#endif
845
+
846
+#if HAS_HEATER_2 && !defined(HEATER_2_INVERTING)
847
+  #define HEATER_2_INVERTING false
848
+#endif
849
+
850
+#if HAS_HEATER_3 && !defined(HEATER_3_INVERTING)
851
+  #define HEATER_3_INVERTING false
852
+#endif
853
+
854
+#if HAS_HEATER_4 && !defined(HEATER_4_INVERTING)
855
+  #define HEATER_4_INVERTING false
856
+#endif
857
+
858
+/**
835
  * Helper Macros for heaters and extruder fan
859
  * Helper Macros for heaters and extruder fan
836
  */
860
  */
837
-#define WRITE_HEATER_0P(v) WRITE(HEATER_0_PIN, v)
861
+
862
+#define WRITE_HEATER_0P(v) WRITE(HEATER_0_PIN, (v) ^ HEATER_0_INVERTING)
838
 #if HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
863
 #if HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
839
-  #define WRITE_HEATER_1(v) WRITE(HEATER_1_PIN, v)
864
+  #define WRITE_HEATER_1(v) WRITE(HEATER_1_PIN, (v) ^ HEATER_1_INVERTING)
840
   #if HOTENDS > 2
865
   #if HOTENDS > 2
841
-    #define WRITE_HEATER_2(v) WRITE(HEATER_2_PIN, v)
866
+    #define WRITE_HEATER_2(v) WRITE(HEATER_2_PIN, (v) ^ HEATER_2_INVERTING)
842
     #if HOTENDS > 3
867
     #if HOTENDS > 3
843
-      #define WRITE_HEATER_3(v) WRITE(HEATER_3_PIN, v)
868
+      #define WRITE_HEATER_3(v) WRITE(HEATER_3_PIN, (v) ^ HEATER_3_INVERTING)
844
       #if HOTENDS > 4
869
       #if HOTENDS > 4
845
-        #define WRITE_HEATER_4(v) WRITE(HEATER_4_PIN, v)
870
+        #define WRITE_HEATER_4(v) WRITE(HEATER_4_PIN, (v) ^ HEATER_4_INVERTING)
846
       #endif // HOTENDS > 4
871
       #endif // HOTENDS > 4
847
     #endif // HOTENDS > 3
872
     #endif // HOTENDS > 3
848
   #endif // HOTENDS > 2
873
   #endif // HOTENDS > 2

+ 6
- 6
Marlin/src/module/temperature.cpp 查看文件

1085
   #endif
1085
   #endif
1086
 
1086
 
1087
   #if HAS_HEATER_0
1087
   #if HAS_HEATER_0
1088
-    SET_OUTPUT(HEATER_0_PIN);
1088
+    OUT_WRITE(HEATER_0_PIN, HEATER_0_INVERTING);
1089
   #endif
1089
   #endif
1090
   #if HAS_HEATER_1
1090
   #if HAS_HEATER_1
1091
-    SET_OUTPUT(HEATER_1_PIN);
1091
+    OUT_WRITE(HEATER_1_PIN, HEATER_1_INVERTING);
1092
   #endif
1092
   #endif
1093
   #if HAS_HEATER_2
1093
   #if HAS_HEATER_2
1094
-    SET_OUTPUT(HEATER_2_PIN);
1094
+    OUT_WRITE(HEATER_2_PIN, HEATER_2_INVERTING);
1095
   #endif
1095
   #endif
1096
   #if HAS_HEATER_3
1096
   #if HAS_HEATER_3
1097
-    SET_OUTPUT(HEATER_3_PIN);
1097
+    OUT_WRITE(HEATER_3_PIN, HEATER_3_INVERTING);
1098
   #endif
1098
   #endif
1099
   #if HAS_HEATER_4
1099
   #if HAS_HEATER_4
1100
-    SET_OUTPUT(HEATER_3_PIN);
1100
+    OUT_WRITE(HEATER_3_PIN, HEATER_4_INVERTING);
1101
   #endif
1101
   #endif
1102
   #if HAS_HEATER_BED
1102
   #if HAS_HEATER_BED
1103
-    SET_OUTPUT(HEATER_BED_PIN);
1103
+    OUT_WRITE(HEATER_BED_PIN, HEATER_BED_INVERTING);
1104
   #endif
1104
   #endif
1105
 
1105
 
1106
   #if HAS_FAN0
1106
   #if HAS_FAN0

正在加载...
取消
保存