|
@@ -370,17 +370,14 @@ int getHeaterPower(int heater) {
|
370
|
370
|
|
371
|
371
|
#if HAS_AUTO_FAN
|
372
|
372
|
|
373
|
|
-void setExtruderAutoFanState(int pin, bool state)
|
374
|
|
-{
|
|
373
|
+void setExtruderAutoFanState(int pin, bool state) {
|
375
|
374
|
unsigned char newFanSpeed = (state != 0) ? EXTRUDER_AUTO_FAN_SPEED : 0;
|
376
|
375
|
// this idiom allows both digital and PWM fan outputs (see M42 handling).
|
377
|
|
- pinMode(pin, OUTPUT);
|
378
|
376
|
digitalWrite(pin, newFanSpeed);
|
379
|
377
|
analogWrite(pin, newFanSpeed);
|
380
|
378
|
}
|
381
|
379
|
|
382
|
|
-void checkExtruderAutoFans()
|
383
|
|
-{
|
|
380
|
+void checkExtruderAutoFans() {
|
384
|
381
|
uint8_t fanState = 0;
|
385
|
382
|
|
386
|
383
|
// which fan pins need to be turned on?
|
|
@@ -443,7 +440,7 @@ void checkExtruderAutoFans()
|
443
|
440
|
#endif
|
444
|
441
|
}
|
445
|
442
|
|
446
|
|
-#endif // any extruder auto fan pins set
|
|
443
|
+#endif // HAS_AUTO_FAN
|
447
|
444
|
|
448
|
445
|
//
|
449
|
446
|
// Temperature Error Handlers
|
|
@@ -917,7 +914,20 @@ void tp_init() {
|
917
|
914
|
#if HAS_FILAMENT_SENSOR
|
918
|
915
|
ANALOG_SELECT(FILWIDTH_PIN);
|
919
|
916
|
#endif
|
920
|
|
-
|
|
917
|
+
|
|
918
|
+ #if HAS_AUTO_FAN_0
|
|
919
|
+ pinMode(EXTRUDER_0_AUTO_FAN_PIN, OUTPUT);
|
|
920
|
+ #endif
|
|
921
|
+ #if HAS_AUTO_FAN_1 && (EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN)
|
|
922
|
+ pinMode(EXTRUDER_1_AUTO_FAN_PIN, OUTPUT);
|
|
923
|
+ #endif
|
|
924
|
+ #if HAS_AUTO_FAN_2 && (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN) && (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN)
|
|
925
|
+ pinMode(EXTRUDER_2_AUTO_FAN_PIN, OUTPUT);
|
|
926
|
+ #endif
|
|
927
|
+ #if HAS_AUTO_FAN_3 && (EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN) && (EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN) && (EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_2_AUTO_FAN_PIN)
|
|
928
|
+ pinMode(EXTRUDER_3_AUTO_FAN_PIN, OUTPUT);
|
|
929
|
+ #endif
|
|
930
|
+
|
921
|
931
|
// Use timer0 for temperature measurement
|
922
|
932
|
// Interleave temperature interrupt with millies interrupt
|
923
|
933
|
OCR0B = 128;
|