Fix / complete USE_CONTROLLER_FAN (#9666)

This commit is contained in:
Bob-the-Kuhn 2018-02-16 02:18:50 -06:00 committed by Scott Lahteine
parent 08d685c97a
commit 2d749d490b
3 changed files with 8 additions and 1 deletions

View file

@ -208,6 +208,10 @@ extern millis_t max_inactive_time, stepper_inactive_time;
#endif #endif
#endif #endif
#if ENABLED(USE_CONTROLLER_FAN)
extern uint8_t controllerFanSpeed;
#endif
#if ENABLED(PID_EXTRUSION_SCALING) #if ENABLED(PID_EXTRUSION_SCALING)
extern int lpq_len; extern int lpq_len;
#endif #endif

View file

@ -27,6 +27,8 @@
#include "../module/stepper_indirection.h" #include "../module/stepper_indirection.h"
#include "../module/temperature.h" #include "../module/temperature.h"
uint8_t controllerFanSpeed;
void controllerfan_update() { void controllerfan_update() {
static millis_t lastMotorOn = 0, // Last time a motor was turned on static millis_t lastMotorOn = 0, // Last time a motor was turned on
nextMotorCheck = 0; // Last time the state was checked nextMotorCheck = 0; // Last time the state was checked
@ -56,6 +58,7 @@ void controllerfan_update() {
// Fan off if no steppers have been enabled for CONTROLLERFAN_SECS seconds // Fan off if no steppers have been enabled for CONTROLLERFAN_SECS seconds
uint8_t speed = (!lastMotorOn || ELAPSED(ms, lastMotorOn + (CONTROLLERFAN_SECS) * 1000UL)) ? 0 : CONTROLLERFAN_SPEED; uint8_t speed = (!lastMotorOn || ELAPSED(ms, lastMotorOn + (CONTROLLERFAN_SECS) * 1000UL)) ? 0 : CONTROLLERFAN_SPEED;
controllerFanSpeed = speed;
// allows digital or PWM fan output to be used (see M42 handling) // allows digital or PWM fan output to be used (see M42 handling)
WRITE(CONTROLLER_FAN_PIN, speed); WRITE(CONTROLLER_FAN_PIN, speed);

View file

@ -46,7 +46,7 @@ bool Power::is_power_needed() {
HOTEND_LOOP() if (thermalManager.autofan_speed[e] > 0) return true; HOTEND_LOOP() if (thermalManager.autofan_speed[e] > 0) return true;
#endif #endif
#if ENABLED(AUTO_POWER_CONTROLLERFAN) && HAS_CONTROLLER_FAN #if ENABLED(AUTO_POWER_CONTROLLERFAN) && HAS_CONTROLLER_FAN && ENABLED(USE_CONTROLLER_FAN)
if (controllerFanSpeed > 0) return true; if (controllerFanSpeed > 0) return true;
#endif #endif