Set auto fan pins to OUTPUT during init
Fixes the problem of these pins being left in INPUT state, as described in #1497
This commit is contained in:
parent
90f858aa85
commit
e602c28ad9
1 changed files with 13 additions and 1 deletions
|
@ -374,7 +374,6 @@ void setExtruderAutoFanState(int pin, bool state)
|
|||
{
|
||||
unsigned char newFanSpeed = (state != 0) ? EXTRUDER_AUTO_FAN_SPEED : 0;
|
||||
// this idiom allows both digital and PWM fan outputs (see M42 handling).
|
||||
pinMode(pin, OUTPUT);
|
||||
digitalWrite(pin, newFanSpeed);
|
||||
analogWrite(pin, newFanSpeed);
|
||||
}
|
||||
|
@ -918,6 +917,19 @@ void tp_init() {
|
|||
ANALOG_SELECT(FILWIDTH_PIN);
|
||||
#endif
|
||||
|
||||
#if HAS_AUTO_FAN_0
|
||||
pinMode(EXTRUDER_0_AUTO_FAN_PIN, OUTPUT);
|
||||
#endif
|
||||
#if HAS_AUTO_FAN_1 && (EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN)
|
||||
pinMode(EXTRUDER_1_AUTO_FAN_PIN, OUTPUT);
|
||||
#endif
|
||||
#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)
|
||||
pinMode(EXTRUDER_2_AUTO_FAN_PIN, OUTPUT);
|
||||
#endif
|
||||
#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)
|
||||
pinMode(EXTRUDER_3_AUTO_FAN_PIN, OUTPUT);
|
||||
#endif
|
||||
|
||||
// Use timer0 for temperature measurement
|
||||
// Interleave temperature interrupt with millies interrupt
|
||||
OCR0B = 128;
|
||||
|
|
Reference in a new issue