ouch finger
This commit is contained in:
@@ -456,7 +456,7 @@ private:
|
||||
|
||||
void updateAutotune(float avgTempC, float maxTempC, uint32_t nowMs) {
|
||||
float duty = 0.0f;
|
||||
uint8_t fan = AUTOTUNE_PREHEAT_FAN_PWM;
|
||||
uint8_t fan = stirFanPwm_;
|
||||
autotuner_.update(avgTempC, maxTempC, cornerSpreadC_, nowMs, duty, fan);
|
||||
|
||||
heaterDutyPercent_ = duty;
|
||||
@@ -464,7 +464,7 @@ private:
|
||||
heaterOn_ = duty >= 50.0f;
|
||||
digitalWrite(HEATER_PIN, heaterOn_ ? HIGH : LOW);
|
||||
heaterBlock_ = duty > 0.0f ? HeaterBlock::None : HeaterBlock::Autotune;
|
||||
writeFan(fan);
|
||||
writeFan(fanManualActive_ ? fanManualPwm_ : stirFanPwm_);
|
||||
lastHeaterUpdateMs_ = nowMs;
|
||||
commitAutotuneIfDone();
|
||||
}
|
||||
@@ -513,15 +513,7 @@ private:
|
||||
}
|
||||
heaterDutyPercent_ = applyHeaterRamp(duty, avgTempC, nowMs);
|
||||
|
||||
const uint8_t fanPwm = fanManualActive_ ? fanManualPwm_ : stirFanPwm_;
|
||||
regulatingFanPwm_ = fanWithMinStir(avgTempC, fanPwm);
|
||||
}
|
||||
|
||||
uint8_t fanWithMinStir(float avgTempC, uint8_t pwm) const {
|
||||
if (avgTempC < IDLE_AUTO_FAN_OFF_TEMP_C) {
|
||||
return 0;
|
||||
}
|
||||
return pwm;
|
||||
regulatingFanPwm_ = fanManualActive_ ? fanManualPwm_ : stirFanPwm_;
|
||||
}
|
||||
|
||||
static float clampPercent(float value) {
|
||||
@@ -547,6 +539,11 @@ private:
|
||||
|
||||
float allowanceFromMaxCorner(float maxTempC, float avgTempC) const {
|
||||
if (!shouldLimitMaxCorner(avgTempC)) {
|
||||
// Heat-up: only taper when a hot corner nears the emergency ceiling
|
||||
if (maxTempC >= EMERGENCY_MAX_TEMP_C - 3.0f) {
|
||||
const float headroom = EMERGENCY_MAX_TEMP_C - maxTempC;
|
||||
return clampPercent((headroom / 3.0f) * 100.0f);
|
||||
}
|
||||
return 100.0f;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user