Skip to content

Commit

Permalink
Merge pull request MarlinFirmware#3196 from thinkyhead/rc_controllerf…
Browse files Browse the repository at this point in the history
…an_bug

Make DISABLE_INACTIVE_X, etc., true if missing
  • Loading branch information
thinkyhead committed Mar 24, 2016
2 parents 7d55d86 + b1a3a95 commit f774420
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 6 deletions.
16 changes: 16 additions & 0 deletions Marlin/Conditionals.h
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,22 @@
#undef SD_DETECT_INVERTED
#endif

/**
* Set defaults for missing (newer) options
*/
#ifndef DISABLE_INACTIVE_X
#define DISABLE_INACTIVE_X DISABLE_X
#endif
#ifndef DISABLE_INACTIVE_Y
#define DISABLE_INACTIVE_Y DISABLE_Y
#endif
#ifndef DISABLE_INACTIVE_Z
#define DISABLE_INACTIVE_Z DISABLE_Z
#endif
#ifndef DISABLE_INACTIVE_E
#define DISABLE_INACTIVE_E DISABLE_E
#endif

// Power Signal Control Definitions
// By default use ATX definition
#ifndef POWER_SUPPLY
Expand Down
15 changes: 9 additions & 6 deletions Marlin/Marlin_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6997,11 +6997,11 @@ void plan_arc(
#if HAS_CONTROLLERFAN

void controllerFan() {
static millis_t lastMotor = 0; // Last time a motor was turned on
static millis_t lastMotorCheck = 0; // Last time the state was checked
static millis_t lastMotorOn = 0; // Last time a motor was turned on
static millis_t nextMotorCheck = 0; // Last time the state was checked
millis_t ms = millis();
if (ms >= lastMotorCheck + 2500) { // Not a time critical function, so we only check every 2500ms
lastMotorCheck = ms;
if (ms >= nextMotorCheck) {
nextMotorCheck = ms + 2500; // Not a time critical function, so only check every 2.5s
if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON || soft_pwm_bed > 0
|| E0_ENABLE_READ == E_ENABLE_ON // If any of the drivers are enabled...
#if EXTRUDERS > 1
Expand All @@ -7017,9 +7017,12 @@ void plan_arc(
#endif
#endif
) {
lastMotor = ms; //... set time to NOW so the fan will turn on
lastMotorOn = ms; //... set time to NOW so the fan will turn on
}
uint8_t speed = (lastMotor == 0 || ms >= lastMotor + ((CONTROLLERFAN_SECS) * 1000UL)) ? 0 : CONTROLLERFAN_SPEED;

// Fan off if no steppers have been enabled for CONTROLLERFAN_SECS seconds
uint8_t speed = (lastMotorOn == 0 || ms >= lastMotorOn + (CONTROLLERFAN_SECS) * 1000UL) ? 0 : CONTROLLERFAN_SPEED;

// allows digital or PWM fan output to be used (see M42 handling)
digitalWrite(CONTROLLERFAN_PIN, speed);
analogWrite(CONTROLLERFAN_PIN, speed);
Expand Down

0 comments on commit f774420

Please sign in to comment.