Quellcode durchsuchen

Solenoid cleanups

Followups to #20473 ahead of #20675
Scott Lahteine vor 3 Jahren
Ursprung
Commit
3a99d001ff
2 geänderte Dateien mit 10 neuen und 33 gelöschten Zeilen
  1. 9
    28
      Marlin/src/feature/solenoid.cpp
  2. 1
    5
      Marlin/src/module/tool_change.cpp

+ 9
- 28
Marlin/src/feature/solenoid.cpp Datei anzeigen

@@ -32,50 +32,31 @@
32 32
 
33 33
 #if ENABLED(PARKING_EXTRUDER)
34 34
   #include "../module/tool_change.h"
35
-  #define SOLENOID_MAGNETIZED_STATE (TERN_(PARKING_EXTRUDER_SOLENOIDS_INVERT,!)PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE)
36
-#else
37
-  #define SOLENOID_MAGNETIZED_STATE HIGH
38 35
 #endif
39 36
 
40
-#define HAS_SOLENOID(N) (HAS_SOLENOID_##N && TERN(MANUAL_SOLENOID_CONTROL, true, EXTRUDERS > N))
37
+#define HAS_SOLENOID(N) (HAS_SOLENOID_##N && (ENABLED(MANUAL_SOLENOID_CONTROL) || N < EXTRUDERS))
41 38
 
42 39
 // Used primarily with MANUAL_SOLENOID_CONTROL
43 40
 static void set_solenoid(const uint8_t num, const bool active) {
44
-  const uint8_t value = active ? SOLENOID_MAGNETIZED_STATE : !SOLENOID_MAGNETIZED_STATE;
41
+  const uint8_t value = active ? PE_MAGNET_ON_STATE : !PE_MAGNET_ON_STATE;
45 42
   switch (num) {
46
-    case 0:
47
-      OUT_WRITE(SOL0_PIN, value);
48
-      TERN_(PARKING_EXTRUDER, if (!active && active_extruder == 0) parking_extruder_set_parked()); // If active extruder's solenoid is disabled, carriage is considered parked
49
-      break;
43
+    case 0: OUT_WRITE(SOL0_PIN, value); break;
50 44
     #if HAS_SOLENOID(1)
51
-      case 1:
52
-        OUT_WRITE(SOL1_PIN, value);
53
-        TERN_(PARKING_EXTRUDER, if (!active && active_extruder == 1) parking_extruder_set_parked()); // If active extruder's solenoid is disabled, carriage is considered parked
54
-        break;
45
+      case 1: OUT_WRITE(SOL1_PIN, value); break;
55 46
     #endif
56 47
     #if HAS_SOLENOID(2)
57
-      case 2:
58
-        OUT_WRITE(SOL2_PIN, value);
59
-        break;
48
+      case 2: OUT_WRITE(SOL2_PIN, value); break;
60 49
     #endif
61 50
     #if HAS_SOLENOID(3)
62
-      case 3:
63
-        OUT_WRITE(SOL3_PIN, value);
64
-        break;
51
+      case 3: OUT_WRITE(SOL3_PIN, value); break;
65 52
     #endif
66 53
     #if HAS_SOLENOID(4)
67
-      case 4:
68
-        OUT_WRITE(SOL4_PIN, value);
69
-        break;
54
+      case 4: OUT_WRITE(SOL4_PIN, value); break;
70 55
     #endif
71 56
     #if HAS_SOLENOID(5)
72
-      case 5:
73
-        OUT_WRITE(SOL5_PIN, value);
74
-        break;
57
+      case 5: OUT_WRITE(SOL5_PIN, value); break;
75 58
     #endif
76
-    default:
77
-      SERIAL_ECHO_MSG(STR_INVALID_SOLENOID);
78
-      break;
59
+    default: SERIAL_ECHO_MSG(STR_INVALID_SOLENOID); break;
79 60
   }
80 61
 }
81 62
 

+ 1
- 5
Marlin/src/module/tool_change.cpp Datei anzeigen

@@ -260,11 +260,7 @@ inline void fast_line_to_current(const AxisEnum fr_axis) { _line_to_current(fr_a
260 260
 
261 261
   void pe_solenoid_init() {
262 262
     LOOP_LE_N(n, 1)
263
-      #if ENABLED(PARKING_EXTRUDER_SOLENOIDS_INVERT)
264
-        pe_activate_solenoid(n);
265
-      #else
266
-        pe_deactivate_solenoid(n);
267
-      #endif
263
+      TERN(PARKING_EXTRUDER_SOLENOIDS_INVERT, pe_activate_solenoid, pe_deactivate_solenoid)(n);
268 264
   }
269 265
 
270 266
   void pe_set_solenoid(const uint8_t extruder_num, const uint8_t state) {

Laden…
Abbrechen
Speichern