@@ -1599,22 +1599,25 @@ void Temperature::mintemp_error(const heater_id_t heater_id) {
1599
1599
#endif
1600
1600
1601
1601
#if HEATER_IDLE_HANDLER
1602
- if (heater_idle[IDLE_INDEX_BED].timed_out ) {
1602
+ const bool bed_timed_out = heater_idle[IDLE_INDEX_BED].timed_out ;
1603
+ if (bed_timed_out) {
1603
1604
temp_bed.soft_pwm_amount = 0 ;
1604
1605
if (DISABLED (PIDTEMPBED)) WRITE_HEATER_BED (LOW);
1605
1606
}
1606
- else
1607
+ #else
1608
+ constexpr bool bed_timed_out = false ;
1607
1609
#endif
1608
- {
1610
+
1611
+ if (!bed_timed_out) {
1609
1612
#if ENABLED(PIDTEMPBED)
1610
1613
temp_bed.soft_pwm_amount = WITHIN (temp_bed.celsius , BED_MINTEMP, BED_MAXTEMP) ? (int )get_pid_output_bed () >> 1 : 0 ;
1611
1614
#else
1612
1615
// Check if temperature is within the correct band
1613
1616
if (WITHIN (temp_bed.celsius , BED_MINTEMP, BED_MAXTEMP)) {
1614
1617
#if ENABLED(BED_LIMIT_SWITCHING)
1615
- if (temp_bed.celsius >= temp_bed. target + BED_HYSTERESIS )
1618
+ if (temp_bed.is_above_target ((BED_HYSTERESIS) - 1 ) )
1616
1619
temp_bed.soft_pwm_amount = 0 ;
1617
- else if (temp_bed.is_below_target (- (BED_HYSTERESIS) + 1 ))
1620
+ else if (temp_bed.is_below_target ((BED_HYSTERESIS) - 1 ))
1618
1621
temp_bed.soft_pwm_amount = MAX_BED_POWER >> 1 ;
1619
1622
#else // !PIDTEMPBED && !BED_LIMIT_SWITCHING
1620
1623
temp_bed.soft_pwm_amount = temp_bed.is_below_target () ? MAX_BED_POWER >> 1 : 0 ;
@@ -1641,7 +1644,7 @@ void Temperature::mintemp_error(const heater_id_t heater_id) {
1641
1644
#endif
1642
1645
1643
1646
#if ENABLED(THERMAL_PROTECTION_CHAMBER)
1644
- if (degChamber () > CHAMBER_MAXTEMP) maxtemp_error (H_CHAMBER);
1647
+ if (degChamber () > ( CHAMBER_MAXTEMP) ) maxtemp_error (H_CHAMBER);
1645
1648
#endif
1646
1649
1647
1650
#if WATCH_CHAMBER
@@ -1669,13 +1672,12 @@ void Temperature::mintemp_error(const heater_id_t heater_id) {
1669
1672
#if CHAMBER_FAN_MODE == 0
1670
1673
fan_chamber_pwm = CHAMBER_FAN_BASE;
1671
1674
#elif CHAMBER_FAN_MODE == 1
1672
- fan_chamber_pwm = ( temp_chamber.celsius > temp_chamber. target ) ? (CHAMBER_FAN_BASE) + (CHAMBER_FAN_FACTOR) * (temp_chamber.celsius - temp_chamber.target ) : 0 ;
1675
+ fan_chamber_pwm = temp_chamber.is_above_target ( ) ? (CHAMBER_FAN_BASE) + (CHAMBER_FAN_FACTOR) * (temp_chamber.celsius - temp_chamber.target ) : 0 ;
1673
1676
#elif CHAMBER_FAN_MODE == 2
1674
1677
fan_chamber_pwm = (CHAMBER_FAN_BASE) + (CHAMBER_FAN_FACTOR) * ABS (temp_chamber.celsius - temp_chamber.target );
1675
- if (temp_chamber.soft_pwm_amount )
1676
- fan_chamber_pwm += (CHAMBER_FAN_FACTOR) * 2 ;
1678
+ if (temp_chamber.soft_pwm_amount ) fan_chamber_pwm += (CHAMBER_FAN_FACTOR) * 2 ;
1677
1679
#elif CHAMBER_FAN_MODE == 3
1678
- fan_chamber_pwm = CHAMBER_FAN_BASE + _MAX ((CHAMBER_FAN_FACTOR) * (temp_chamber.celsius - temp_chamber.target ), 0 );
1680
+ fan_chamber_pwm = ( CHAMBER_FAN_BASE) + _MAX ((CHAMBER_FAN_FACTOR) * (temp_chamber.celsius - temp_chamber.target ), 0 );
1679
1681
#endif
1680
1682
NOMORE (fan_chamber_pwm, 255 );
1681
1683
set_fan_speed (CHAMBER_FAN_INDEX, fan_chamber_pwm);
@@ -1688,7 +1690,7 @@ void Temperature::mintemp_error(const heater_id_t heater_id) {
1688
1690
#ifndef MIN_COOLING_SLOPE_DEG_CHAMBER_VENT
1689
1691
#define MIN_COOLING_SLOPE_DEG_CHAMBER_VENT 1.5
1690
1692
#endif
1691
- if (!flag_chamber_excess_heat && temp_chamber.celsius - temp_chamber. target >= HIGH_EXCESS_HEAT_LIMIT ) {
1693
+ if (!flag_chamber_excess_heat && temp_chamber.is_above_target ((HIGH_EXCESS_HEAT_LIMIT) - 1 ) ) {
1692
1694
// Open vent after MIN_COOLING_SLOPE_TIME_CHAMBER_VENT seconds if the
1693
1695
// temperature didn't drop at least MIN_COOLING_SLOPE_DEG_CHAMBER_VENT
1694
1696
if (next_cool_check_ms_2 == 0 || ELAPSED (ms, next_cool_check_ms_2)) {
@@ -1702,7 +1704,7 @@ void Temperature::mintemp_error(const heater_id_t heater_id) {
1702
1704
next_cool_check_ms_2 = 0 ;
1703
1705
old_temp = 9999 ;
1704
1706
}
1705
- if (flag_chamber_excess_heat && ( temp_chamber.target - temp_chamber. celsius >= LOW_EXCESS_HEAT_LIMIT ))
1707
+ if (flag_chamber_excess_heat && temp_chamber.is_above_target ((LOW_EXCESS_HEAT_LIMIT) - 1 ))
1706
1708
flag_chamber_excess_heat = false ;
1707
1709
#endif
1708
1710
}
@@ -1734,9 +1736,9 @@ void Temperature::mintemp_error(const heater_id_t heater_id) {
1734
1736
}
1735
1737
else {
1736
1738
#if ENABLED(CHAMBER_LIMIT_SWITCHING)
1737
- if (temp_chamber.celsius >= temp_chamber. target + TEMP_CHAMBER_HYSTERESIS )
1739
+ if (temp_chamber.is_above_target ((TEMP_CHAMBER_HYSTERESIS) - 1 ) )
1738
1740
temp_chamber.soft_pwm_amount = 0 ;
1739
- else if (temp_chamber.is_below_target (- (TEMP_CHAMBER_HYSTERESIS) + 1 ))
1741
+ else if (temp_chamber.is_below_target ((TEMP_CHAMBER_HYSTERESIS) - 1 ))
1740
1742
temp_chamber.soft_pwm_amount = (MAX_CHAMBER_POWER) >> 1 ;
1741
1743
#else
1742
1744
temp_chamber.soft_pwm_amount = temp_chamber.is_below_target () ? (MAX_CHAMBER_POWER) >> 1 : 0 ;
@@ -1788,20 +1790,18 @@ void Temperature::mintemp_error(const heater_id_t heater_id) {
1788
1790
if (temp_cooler.target == 0 ) temp_cooler.target = COOLER_MIN_TARGET;
1789
1791
if (ELAPSED (ms, next_cooler_check_ms)) {
1790
1792
next_cooler_check_ms = ms + COOLER_CHECK_INTERVAL;
1791
- if (temp_cooler.celsius > temp_cooler.target ) {
1792
- temp_cooler.soft_pwm_amount = temp_cooler.celsius > temp_cooler.target ? MAX_COOLER_POWER : 0 ;
1793
- flag_cooler_state = temp_cooler.soft_pwm_amount > 0 ? true : false ; // used to allow M106 fan control when cooler is disabled
1793
+ if (temp_cooler.is_above_target ()) { // too warm?
1794
+ temp_cooler.soft_pwm_amount = MAX_COOLER_POWER;
1794
1795
#if ENABLED(COOLER_FAN)
1795
- int16_t fan_cooler_pwm = (COOLER_FAN_BASE) + (COOLER_FAN_FACTOR) * ABS (temp_cooler.celsius - temp_cooler.target );
1796
- NOMORE (fan_cooler_pwm, 255 );
1797
- set_fan_speed (COOLER_FAN_INDEX, fan_cooler_pwm); // Set cooler fan pwm
1796
+ const int16_t fan_cooler_pwm = (COOLER_FAN_BASE) + (COOLER_FAN_FACTOR) * ABS (temp_cooler.celsius - temp_cooler.target );
1797
+ set_fan_speed (COOLER_FAN_INDEX, _MIN (fan_cooler_pwm, 255 )); // Set cooler fan pwm
1798
1798
cooler_fan_flush_ms = ms + 5000 ;
1799
1799
#endif
1800
1800
}
1801
1801
else {
1802
1802
temp_cooler.soft_pwm_amount = 0 ;
1803
1803
#if ENABLED(COOLER_FAN)
1804
- set_fan_speed (COOLER_FAN_INDEX, temp_cooler.celsius > temp_cooler. target - 2 ? COOLER_FAN_BASE : 0 );
1804
+ set_fan_speed (COOLER_FAN_INDEX, temp_cooler.is_above_target (- 2 ) ? COOLER_FAN_BASE : 0 );
1805
1805
#endif
1806
1806
WRITE_HEATER_COOLER (LOW);
1807
1807
}
0 commit comments