|
@@ -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
|
|