|
@@ -437,8 +437,8 @@ PGMSTR(str_t_heating_failed, STR_T_HEATING_FAILED);
|
437
|
437
|
#if HAS_HEATED_BED
|
438
|
438
|
bed_info_t Temperature::temp_bed; // = { 0 }
|
439
|
439
|
// Init min and max temp with extreme values to prevent false errors during startup
|
440
|
|
- int16_t Temperature::mintemp_raw_BED = TEMP_SENSOR_BED_RAW_LO_TEMP,
|
441
|
|
- Temperature::maxtemp_raw_BED = TEMP_SENSOR_BED_RAW_HI_TEMP;
|
|
440
|
+ raw_adc_t Temperature::mintemp_raw_BED = TEMP_SENSOR_BED_RAW_LO_TEMP,
|
|
441
|
+ Temperature::maxtemp_raw_BED = TEMP_SENSOR_BED_RAW_HI_TEMP;
|
442
|
442
|
TERN_(WATCH_BED, bed_watch_t Temperature::watch_bed); // = { 0 }
|
443
|
443
|
IF_DISABLED(PIDTEMPBED, millis_t Temperature::next_bed_check_ms);
|
444
|
444
|
#endif
|
|
@@ -448,8 +448,8 @@ PGMSTR(str_t_heating_failed, STR_T_HEATING_FAILED);
|
448
|
448
|
#if HAS_HEATED_CHAMBER
|
449
|
449
|
millis_t next_cool_check_ms_2 = 0;
|
450
|
450
|
celsius_float_t old_temp = 9999;
|
451
|
|
- int16_t Temperature::mintemp_raw_CHAMBER = TEMP_SENSOR_CHAMBER_RAW_LO_TEMP,
|
452
|
|
- Temperature::maxtemp_raw_CHAMBER = TEMP_SENSOR_CHAMBER_RAW_HI_TEMP;
|
|
451
|
+ raw_adc_t Temperature::mintemp_raw_CHAMBER = TEMP_SENSOR_CHAMBER_RAW_LO_TEMP,
|
|
452
|
+ Temperature::maxtemp_raw_CHAMBER = TEMP_SENSOR_CHAMBER_RAW_HI_TEMP;
|
453
|
453
|
TERN_(WATCH_CHAMBER, chamber_watch_t Temperature::watch_chamber{0});
|
454
|
454
|
IF_DISABLED(PIDTEMPCHAMBER, millis_t Temperature::next_chamber_check_ms);
|
455
|
455
|
#endif
|
|
@@ -461,8 +461,8 @@ PGMSTR(str_t_heating_failed, STR_T_HEATING_FAILED);
|
461
|
461
|
bool flag_cooler_state;
|
462
|
462
|
//bool flag_cooler_excess = false;
|
463
|
463
|
celsius_float_t previous_temp = 9999;
|
464
|
|
- int16_t Temperature::mintemp_raw_COOLER = TEMP_SENSOR_COOLER_RAW_LO_TEMP,
|
465
|
|
- Temperature::maxtemp_raw_COOLER = TEMP_SENSOR_COOLER_RAW_HI_TEMP;
|
|
464
|
+ raw_adc_t Temperature::mintemp_raw_COOLER = TEMP_SENSOR_COOLER_RAW_LO_TEMP,
|
|
465
|
+ Temperature::maxtemp_raw_COOLER = TEMP_SENSOR_COOLER_RAW_HI_TEMP;
|
466
|
466
|
#if WATCH_COOLER
|
467
|
467
|
cooler_watch_t Temperature::watch_cooler{0};
|
468
|
468
|
#endif
|
|
@@ -477,8 +477,8 @@ PGMSTR(str_t_heating_failed, STR_T_HEATING_FAILED);
|
477
|
477
|
#if HAS_TEMP_BOARD
|
478
|
478
|
board_info_t Temperature::temp_board; // = { 0 }
|
479
|
479
|
#if ENABLED(THERMAL_PROTECTION_BOARD)
|
480
|
|
- int16_t Temperature::mintemp_raw_BOARD = TEMP_SENSOR_BOARD_RAW_LO_TEMP,
|
481
|
|
- Temperature::maxtemp_raw_BOARD = TEMP_SENSOR_BOARD_RAW_HI_TEMP;
|
|
480
|
+ raw_adc_t Temperature::mintemp_raw_BOARD = TEMP_SENSOR_BOARD_RAW_LO_TEMP,
|
|
481
|
+ Temperature::maxtemp_raw_BOARD = TEMP_SENSOR_BOARD_RAW_HI_TEMP;
|
482
|
482
|
#endif
|
483
|
483
|
#endif
|
484
|
484
|
|
|
@@ -508,6 +508,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
508
|
508
|
#endif
|
509
|
509
|
|
510
|
510
|
#define TEMPDIR(N) ((TEMP_SENSOR_##N##_RAW_LO_TEMP) < (TEMP_SENSOR_##N##_RAW_HI_TEMP) ? 1 : -1)
|
|
511
|
+#define TP_CMP(S,A,B) (TEMPDIR(S) < 0 ? ((A)<(B)) : ((A)>(B)))
|
511
|
512
|
|
512
|
513
|
#if HAS_HOTEND
|
513
|
514
|
// Init mintemp and maxtemp with extreme values to prevent false errors during startup
|
|
@@ -1689,8 +1690,8 @@ void Temperature::manage_heater() {
|
1689
|
1690
|
m = (l + r) >> 1; \
|
1690
|
1691
|
if (!m) return celsius_t(pgm_read_word(&TBL[0].celsius)); \
|
1691
|
1692
|
if (m == l || m == r) return celsius_t(pgm_read_word(&TBL[LEN-1].celsius)); \
|
1692
|
|
- int16_t v00 = pgm_read_word(&TBL[m-1].value), \
|
1693
|
|
- v10 = pgm_read_word(&TBL[m-0].value); \
|
|
1693
|
+ raw_adc_t v00 = pgm_read_word(&TBL[m-1].value), \
|
|
1694
|
+ v10 = pgm_read_word(&TBL[m-0].value); \
|
1694
|
1695
|
if (raw < v00) r = m; \
|
1695
|
1696
|
else if (raw > v10) l = m; \
|
1696
|
1697
|
else { \
|
|
@@ -1784,7 +1785,7 @@ void Temperature::manage_heater() {
|
1784
|
1785
|
SERIAL_EOL();
|
1785
|
1786
|
}
|
1786
|
1787
|
|
1787
|
|
- celsius_float_t Temperature::user_thermistor_to_deg_c(const uint8_t t_index, const int16_t raw) {
|
|
1788
|
+ celsius_float_t Temperature::user_thermistor_to_deg_c(const uint8_t t_index, const raw_adc_t raw) {
|
1788
|
1789
|
|
1789
|
1790
|
if (!WITHIN(t_index, 0, COUNT(user_thermistor) - 1)) return 25;
|
1790
|
1791
|
|
|
@@ -1799,8 +1800,8 @@ void Temperature::manage_heater() {
|
1799
|
1800
|
}
|
1800
|
1801
|
|
1801
|
1802
|
// maximum adc value .. take into account the over sampling
|
1802
|
|
- const int adc_max = MAX_RAW_THERMISTOR_VALUE,
|
1803
|
|
- adc_raw = constrain(raw, 1, adc_max - 1); // constrain to prevent divide-by-zero
|
|
1803
|
+ constexpr raw_adc_t adc_max = MAX_RAW_THERMISTOR_VALUE;
|
|
1804
|
+ const raw_adc_t adc_raw = constrain(raw, 1, adc_max - 1); // constrain to prevent divide-by-zero
|
1804
|
1805
|
|
1805
|
1806
|
const float adc_inverse = (adc_max - adc_raw) - 0.5f,
|
1806
|
1807
|
resistance = t.series_res * (adc_raw + 0.5f) / adc_inverse,
|
|
@@ -1820,7 +1821,7 @@ void Temperature::manage_heater() {
|
1820
|
1821
|
#if HAS_HOTEND
|
1821
|
1822
|
// Derived from RepRap FiveD extruder::getTemperature()
|
1822
|
1823
|
// For hot end temperature measurement.
|
1823
|
|
- celsius_float_t Temperature::analog_to_celsius_hotend(const int16_t raw, const uint8_t e) {
|
|
1824
|
+ celsius_float_t Temperature::analog_to_celsius_hotend(const raw_adc_t raw, const uint8_t e) {
|
1824
|
1825
|
if (e >= HOTENDS) {
|
1825
|
1826
|
SERIAL_ERROR_START();
|
1826
|
1827
|
SERIAL_ECHO(e);
|
|
@@ -1836,11 +1837,11 @@ void Temperature::manage_heater() {
|
1836
|
1837
|
#elif TEMP_SENSOR_0_IS_MAX_TC
|
1837
|
1838
|
#if TEMP_SENSOR_0_IS_MAX31865
|
1838
|
1839
|
return TERN(LIB_INTERNAL_MAX31865,
|
1839
|
|
- max31865_0.temperature((uint16_t)raw),
|
|
1840
|
+ max31865_0.temperature(raw),
|
1840
|
1841
|
max31865_0.temperature(MAX31865_SENSOR_OHMS_0, MAX31865_CALIBRATION_OHMS_0)
|
1841
|
1842
|
);
|
1842
|
1843
|
#else
|
1843
|
|
- return raw * 0.25;
|
|
1844
|
+ return (int16_t)raw * 0.25;
|
1844
|
1845
|
#endif
|
1845
|
1846
|
#elif TEMP_SENSOR_0_IS_AD595
|
1846
|
1847
|
return TEMP_AD595(raw);
|
|
@@ -1855,11 +1856,11 @@ void Temperature::manage_heater() {
|
1855
|
1856
|
#elif TEMP_SENSOR_1_IS_MAX_TC
|
1856
|
1857
|
#if TEMP_SENSOR_0_IS_MAX31865
|
1857
|
1858
|
return TERN(LIB_INTERNAL_MAX31865,
|
1858
|
|
- max31865_1.temperature((uint16_t)raw),
|
|
1859
|
+ max31865_1.temperature(raw),
|
1859
|
1860
|
max31865_1.temperature(MAX31865_SENSOR_OHMS_1, MAX31865_CALIBRATION_OHMS_1)
|
1860
|
1861
|
);
|
1861
|
1862
|
#else
|
1862
|
|
- return raw * 0.25;
|
|
1863
|
+ return (int16_t)raw * 0.25;
|
1863
|
1864
|
#endif
|
1864
|
1865
|
#elif TEMP_SENSOR_1_IS_AD595
|
1865
|
1866
|
return TEMP_AD595(raw);
|
|
@@ -1943,7 +1944,7 @@ void Temperature::manage_heater() {
|
1943
|
1944
|
|
1944
|
1945
|
#if HAS_HEATED_BED
|
1945
|
1946
|
// For bed temperature measurement.
|
1946
|
|
- celsius_float_t Temperature::analog_to_celsius_bed(const int16_t raw) {
|
|
1947
|
+ celsius_float_t Temperature::analog_to_celsius_bed(const raw_adc_t raw) {
|
1947
|
1948
|
#if TEMP_SENSOR_BED_IS_CUSTOM
|
1948
|
1949
|
return user_thermistor_to_deg_c(CTI_BED, raw);
|
1949
|
1950
|
#elif TEMP_SENSOR_BED_IS_THERMISTOR
|
|
@@ -1961,7 +1962,7 @@ void Temperature::manage_heater() {
|
1961
|
1962
|
|
1962
|
1963
|
#if HAS_TEMP_CHAMBER
|
1963
|
1964
|
// For chamber temperature measurement.
|
1964
|
|
- celsius_float_t Temperature::analog_to_celsius_chamber(const int16_t raw) {
|
|
1965
|
+ celsius_float_t Temperature::analog_to_celsius_chamber(const raw_adc_t raw) {
|
1965
|
1966
|
#if TEMP_SENSOR_CHAMBER_IS_CUSTOM
|
1966
|
1967
|
return user_thermistor_to_deg_c(CTI_CHAMBER, raw);
|
1967
|
1968
|
#elif TEMP_SENSOR_CHAMBER_IS_THERMISTOR
|
|
@@ -1979,7 +1980,7 @@ void Temperature::manage_heater() {
|
1979
|
1980
|
|
1980
|
1981
|
#if HAS_TEMP_COOLER
|
1981
|
1982
|
// For cooler temperature measurement.
|
1982
|
|
- celsius_float_t Temperature::analog_to_celsius_cooler(const int16_t raw) {
|
|
1983
|
+ celsius_float_t Temperature::analog_to_celsius_cooler(const raw_adc_t raw) {
|
1983
|
1984
|
#if TEMP_SENSOR_COOLER_IS_CUSTOM
|
1984
|
1985
|
return user_thermistor_to_deg_c(CTI_COOLER, raw);
|
1985
|
1986
|
#elif TEMP_SENSOR_COOLER_IS_THERMISTOR
|
|
@@ -1997,7 +1998,7 @@ void Temperature::manage_heater() {
|
1997
|
1998
|
|
1998
|
1999
|
#if HAS_TEMP_PROBE
|
1999
|
2000
|
// For probe temperature measurement.
|
2000
|
|
- celsius_float_t Temperature::analog_to_celsius_probe(const int16_t raw) {
|
|
2001
|
+ celsius_float_t Temperature::analog_to_celsius_probe(const raw_adc_t raw) {
|
2001
|
2002
|
#if TEMP_SENSOR_PROBE_IS_CUSTOM
|
2002
|
2003
|
return user_thermistor_to_deg_c(CTI_PROBE, raw);
|
2003
|
2004
|
#elif TEMP_SENSOR_PROBE_IS_THERMISTOR
|
|
@@ -2015,7 +2016,7 @@ void Temperature::manage_heater() {
|
2015
|
2016
|
|
2016
|
2017
|
#if HAS_TEMP_BOARD
|
2017
|
2018
|
// For motherboard temperature measurement.
|
2018
|
|
- celsius_float_t Temperature::analog_to_celsius_board(const int16_t raw) {
|
|
2019
|
+ celsius_float_t Temperature::analog_to_celsius_board(const raw_adc_t raw) {
|
2019
|
2020
|
#if TEMP_SENSOR_BOARD_IS_CUSTOM
|
2020
|
2021
|
return user_thermistor_to_deg_c(CTI_BOARD, raw);
|
2021
|
2022
|
#elif TEMP_SENSOR_BOARD_IS_THERMISTOR
|
|
@@ -2033,13 +2034,13 @@ void Temperature::manage_heater() {
|
2033
|
2034
|
|
2034
|
2035
|
#if HAS_TEMP_REDUNDANT
|
2035
|
2036
|
// For redundant temperature measurement.
|
2036
|
|
- celsius_float_t Temperature::analog_to_celsius_redundant(const int16_t raw) {
|
|
2037
|
+ celsius_float_t Temperature::analog_to_celsius_redundant(const raw_adc_t raw) {
|
2037
|
2038
|
#if TEMP_SENSOR_REDUNDANT_IS_CUSTOM
|
2038
|
2039
|
return user_thermistor_to_deg_c(CTI_REDUNDANT, raw);
|
2039
|
2040
|
#elif TEMP_SENSOR_REDUNDANT_IS_MAX_TC && REDUNDANT_TEMP_MATCH(SOURCE, E0)
|
2040
|
|
- return TERN(TEMP_SENSOR_REDUNDANT_IS_MAX31865, max31865_0.temperature((uint16_t)raw), raw * 0.25);
|
|
2041
|
+ return TERN(TEMP_SENSOR_REDUNDANT_IS_MAX31865, max31865_0.temperature(raw), (int16_t)raw * 0.25);
|
2041
|
2042
|
#elif TEMP_SENSOR_REDUNDANT_IS_MAX_TC && REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
2042
|
|
- return TERN(TEMP_SENSOR_REDUNDANT_IS_MAX31865, max31865_1.temperature((uint16_t)raw), raw * 0.25);
|
|
2043
|
+ return TERN(TEMP_SENSOR_REDUNDANT_IS_MAX31865, max31865_1.temperature(raw), (int16_t)raw * 0.25);
|
2043
|
2044
|
#elif TEMP_SENSOR_REDUNDANT_IS_THERMISTOR
|
2044
|
2045
|
SCAN_THERMISTOR_TABLE(TEMPTABLE_REDUNDANT, TEMPTABLE_REDUNDANT_LEN);
|
2045
|
2046
|
#elif TEMP_SENSOR_REDUNDANT_IS_AD595
|
|
@@ -2069,20 +2070,20 @@ void Temperature::updateTemperaturesFromRawValues() {
|
2069
|
2070
|
|
2070
|
2071
|
watchdog_refresh(); // Reset because raw_temps_ready was set by the interrupt
|
2071
|
2072
|
|
2072
|
|
- TERN_(TEMP_SENSOR_0_IS_MAX_TC, temp_hotend[0].raw = READ_MAX_TC(0));
|
2073
|
|
- TERN_(TEMP_SENSOR_1_IS_MAX_TC, temp_hotend[1].raw = READ_MAX_TC(1));
|
2074
|
|
- TERN_(TEMP_SENSOR_REDUNDANT_IS_MAX_TC, temp_redundant.raw = READ_MAX_TC(HEATER_ID(TEMP_SENSOR_REDUNDANT_SOURCE)));
|
|
2073
|
+ TERN_(TEMP_SENSOR_0_IS_MAX_TC, temp_hotend[0].setraw(READ_MAX_TC(0)));
|
|
2074
|
+ TERN_(TEMP_SENSOR_1_IS_MAX_TC, temp_hotend[1].setraw(READ_MAX_TC(1)));
|
|
2075
|
+ TERN_(TEMP_SENSOR_REDUNDANT_IS_MAX_TC, temp_redundant.setraw(READ_MAX_TC(HEATER_ID(TEMP_SENSOR_REDUNDANT_SOURCE))));
|
2075
|
2076
|
|
2076
|
2077
|
#if HAS_HOTEND
|
2077
|
|
- HOTEND_LOOP() temp_hotend[e].celsius = analog_to_celsius_hotend(temp_hotend[e].raw, e);
|
|
2078
|
+ HOTEND_LOOP() temp_hotend[e].celsius = analog_to_celsius_hotend(temp_hotend[e].getraw(), e);
|
2078
|
2079
|
#endif
|
2079
|
2080
|
|
2080
|
|
- TERN_(HAS_HEATED_BED, temp_bed.celsius = analog_to_celsius_bed(temp_bed.raw));
|
2081
|
|
- TERN_(HAS_TEMP_CHAMBER, temp_chamber.celsius = analog_to_celsius_chamber(temp_chamber.raw));
|
2082
|
|
- TERN_(HAS_TEMP_COOLER, temp_cooler.celsius = analog_to_celsius_cooler(temp_cooler.raw));
|
2083
|
|
- TERN_(HAS_TEMP_PROBE, temp_probe.celsius = analog_to_celsius_probe(temp_probe.raw));
|
2084
|
|
- TERN_(HAS_TEMP_BOARD, temp_board.celsius = analog_to_celsius_board(temp_board.raw));
|
2085
|
|
- TERN_(HAS_TEMP_REDUNDANT, temp_redundant.celsius = analog_to_celsius_redundant(temp_redundant.raw));
|
|
2081
|
+ TERN_(HAS_HEATED_BED, temp_bed.celsius = analog_to_celsius_bed(temp_bed.getraw()));
|
|
2082
|
+ TERN_(HAS_TEMP_CHAMBER, temp_chamber.celsius = analog_to_celsius_chamber(temp_chamber.getraw()));
|
|
2083
|
+ TERN_(HAS_TEMP_COOLER, temp_cooler.celsius = analog_to_celsius_cooler(temp_cooler.getraw()));
|
|
2084
|
+ TERN_(HAS_TEMP_PROBE, temp_probe.celsius = analog_to_celsius_probe(temp_probe.getraw()));
|
|
2085
|
+ TERN_(HAS_TEMP_BOARD, temp_board.celsius = analog_to_celsius_board(temp_board.getraw()));
|
|
2086
|
+ TERN_(HAS_TEMP_REDUNDANT, temp_redundant.celsius = analog_to_celsius_redundant(temp_redundant.getraw()));
|
2086
|
2087
|
|
2087
|
2088
|
TERN_(FILAMENT_WIDTH_SENSOR, filwidth.update_measured_mm());
|
2088
|
2089
|
TERN_(HAS_POWER_MONITOR, power_monitor.capture_values());
|
|
@@ -2108,46 +2109,45 @@ void Temperature::updateTemperaturesFromRawValues() {
|
2108
|
2109
|
};
|
2109
|
2110
|
|
2110
|
2111
|
LOOP_L_N(e, COUNT(temp_dir)) {
|
2111
|
|
- const int8_t tdir = temp_dir[e];
|
2112
|
|
- if (tdir) {
|
2113
|
|
- const int16_t rawtemp = temp_hotend[e].raw * tdir; // normal direction, +rawtemp, else -rawtemp
|
2114
|
|
- if (rawtemp > temp_range[e].raw_max * tdir) max_temp_error((heater_id_t)e);
|
2115
|
|
-
|
2116
|
|
- const bool heater_on = temp_hotend[e].target > 0;
|
2117
|
|
- if (heater_on && rawtemp < temp_range[e].raw_min * tdir && !is_preheating(e)) {
|
2118
|
|
- #if MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED > 1
|
2119
|
|
- if (++consecutive_low_temperature_error[e] >= MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED)
|
2120
|
|
- #endif
|
2121
|
|
- min_temp_error((heater_id_t)e);
|
2122
|
|
- }
|
|
2112
|
+ const raw_adc_t r = temp_hotend[e].getraw();
|
|
2113
|
+ const bool neg = temp_dir[e] < 0, pos = temp_dir[e] > 0;
|
|
2114
|
+ if ((neg && r < temp_range[e].raw_max) || (pos && r > temp_range[e].raw_max))
|
|
2115
|
+ max_temp_error((heater_id_t)e);
|
|
2116
|
+
|
|
2117
|
+ const bool heater_on = temp_hotend[e].target > 0;
|
|
2118
|
+ if (heater_on && ((neg && r > temp_range[e].raw_min) || (pos && r < temp_range[e].raw_min))) {
|
2123
|
2119
|
#if MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED > 1
|
2124
|
|
- else
|
2125
|
|
- consecutive_low_temperature_error[e] = 0;
|
|
2120
|
+ if (++consecutive_low_temperature_error[e] >= MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED)
|
2126
|
2121
|
#endif
|
|
2122
|
+ min_temp_error((heater_id_t)e);
|
2127
|
2123
|
}
|
|
2124
|
+ #if MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED > 1
|
|
2125
|
+ else
|
|
2126
|
+ consecutive_low_temperature_error[e] = 0;
|
|
2127
|
+ #endif
|
2128
|
2128
|
}
|
2129
|
2129
|
|
2130
|
2130
|
#endif // HAS_HOTEND
|
2131
|
2131
|
|
2132
|
2132
|
#define TP_CMP(S,A,B) (TEMPDIR(S) < 0 ? ((A)<(B)) : ((A)>(B)))
|
2133
|
2133
|
#if ENABLED(THERMAL_PROTECTION_BED)
|
2134
|
|
- if (TP_CMP(BED, temp_bed.raw, maxtemp_raw_BED)) max_temp_error(H_BED);
|
2135
|
|
- if (temp_bed.target > 0 && TP_CMP(BED, mintemp_raw_BED, temp_bed.raw)) min_temp_error(H_BED);
|
|
2134
|
+ if (TP_CMP(BED, temp_bed.getraw(), maxtemp_raw_BED)) max_temp_error(H_BED);
|
|
2135
|
+ if (temp_bed.target > 0 && TP_CMP(BED, mintemp_raw_BED, temp_bed.getraw())) min_temp_error(H_BED);
|
2136
|
2136
|
#endif
|
2137
|
2137
|
|
2138
|
2138
|
#if BOTH(HAS_HEATED_CHAMBER, THERMAL_PROTECTION_CHAMBER)
|
2139
|
|
- if (TP_CMP(CHAMBER, temp_chamber.raw, maxtemp_raw_CHAMBER)) max_temp_error(H_CHAMBER);
|
2140
|
|
- if (temp_chamber.target > 0 && TP_CMP(CHAMBER, mintemp_raw_CHAMBER, temp_chamber.raw)) min_temp_error(H_CHAMBER);
|
|
2139
|
+ if (TP_CMP(CHAMBER, temp_chamber.getraw(), maxtemp_raw_CHAMBER)) max_temp_error(H_CHAMBER);
|
|
2140
|
+ if (temp_chamber.target > 0 && TP_CMP(CHAMBER, mintemp_raw_CHAMBER, temp_chamber.getraw())) min_temp_error(H_CHAMBER);
|
2141
|
2141
|
#endif
|
2142
|
2142
|
|
2143
|
2143
|
#if BOTH(HAS_COOLER, THERMAL_PROTECTION_COOLER)
|
2144
|
|
- if (cutter.unitPower > 0 && TP_CMP(COOLER, temp_cooler.raw, maxtemp_raw_COOLER)) max_temp_error(H_COOLER);
|
2145
|
|
- if (TP_CMP(COOLER, mintemp_raw_COOLER, temp_cooler.raw)) min_temp_error(H_COOLER);
|
|
2144
|
+ if (cutter.unitPower > 0 && TP_CMP(COOLER, temp_cooler.getraw(), maxtemp_raw_COOLER)) max_temp_error(H_COOLER);
|
|
2145
|
+ if (TP_CMP(COOLER, mintemp_raw_COOLER, temp_cooler.getraw())) min_temp_error(H_COOLER);
|
2146
|
2146
|
#endif
|
2147
|
2147
|
|
2148
|
2148
|
#if BOTH(HAS_TEMP_BOARD, THERMAL_PROTECTION_BOARD)
|
2149
|
|
- if (TP_CMP(BOARD, temp_board.raw, maxtemp_raw_BOARD)) max_temp_error(H_BOARD);
|
2150
|
|
- if (TP_CMP(BOARD, mintemp_raw_BOARD, temp_board.raw)) min_temp_error(H_BOARD);
|
|
2149
|
+ if (TP_CMP(BOARD, temp_board.getraw(), maxtemp_raw_BOARD)) max_temp_error(H_BOARD);
|
|
2150
|
+ if (TP_CMP(BOARD, mintemp_raw_BOARD, temp_board.getraw())) min_temp_error(H_BOARD);
|
2151
|
2151
|
#endif
|
2152
|
2152
|
#undef TP_CMP
|
2153
|
2153
|
|
|
@@ -2731,7 +2731,7 @@ void Temperature::disable_all_heaters() {
|
2731
|
2731
|
* @param hindex the hotend we're referencing (if MULTI_MAX_TC)
|
2732
|
2732
|
* @return integer representing the board's buffer, to be converted later if needed
|
2733
|
2733
|
*/
|
2734
|
|
- int16_t Temperature::read_max_tc(TERN_(HAS_MULTI_MAX_TC, const uint8_t hindex/*=0*/)) {
|
|
2734
|
+ raw_adc_t Temperature::read_max_tc(TERN_(HAS_MULTI_MAX_TC, const uint8_t hindex/*=0*/)) {
|
2735
|
2735
|
#define MAXTC_HEAT_INTERVAL 250UL
|
2736
|
2736
|
|
2737
|
2737
|
#if HAS_MAX31855
|
|
@@ -2750,7 +2750,7 @@ void Temperature::disable_all_heaters() {
|
2750
|
2750
|
|
2751
|
2751
|
#if HAS_MULTI_MAX_TC
|
2752
|
2752
|
// Needed to return the correct temp when this is called between readings
|
2753
|
|
- static int16_t max_tc_temp_previous[MAX_TC_COUNT] = { 0 };
|
|
2753
|
+ static raw_adc_t max_tc_temp_previous[MAX_TC_COUNT] = { 0 };
|
2754
|
2754
|
#define THERMO_TEMP(I) max_tc_temp_previous[I]
|
2755
|
2755
|
#define THERMO_SEL(A,B) (hindex ? (B) : (A))
|
2756
|
2756
|
#define MAXTC_CS_WRITE(V) do{ switch (hindex) { case 1: WRITE(TEMP_1_CS_PIN, V); break; default: WRITE(TEMP_0_CS_PIN, V); } }while(0)
|
|
@@ -2779,7 +2779,7 @@ void Temperature::disable_all_heaters() {
|
2779
|
2779
|
// Return last-read value between readings
|
2780
|
2780
|
millis_t ms = millis();
|
2781
|
2781
|
if (PENDING(ms, next_max_tc_ms[hindex]))
|
2782
|
|
- return (int16_t)THERMO_TEMP(hindex);
|
|
2782
|
+ return THERMO_TEMP(hindex);
|
2783
|
2783
|
|
2784
|
2784
|
next_max_tc_ms[hindex] = ms + MAXTC_HEAT_INTERVAL;
|
2785
|
2785
|
|
|
@@ -2876,7 +2876,7 @@ void Temperature::disable_all_heaters() {
|
2876
|
2876
|
|
2877
|
2877
|
THERMO_TEMP(hindex) = max_tc_temp;
|
2878
|
2878
|
|
2879
|
|
- return (int16_t)max_tc_temp;
|
|
2879
|
+ return max_tc_temp;
|
2880
|
2880
|
}
|
2881
|
2881
|
|
2882
|
2882
|
#endif // HAS_MAX_TC
|
|
@@ -3017,7 +3017,7 @@ void Temperature::isr() {
|
3017
|
3017
|
uint8_t pwm_count_tmp = pwm_count;
|
3018
|
3018
|
|
3019
|
3019
|
#if HAS_ADC_BUTTONS
|
3020
|
|
- static unsigned int raw_ADCKey_value = 0;
|
|
3020
|
+ static raw_adc_t raw_ADCKey_value = 0;
|
3021
|
3021
|
static bool ADCKey_pressed = false;
|
3022
|
3022
|
#endif
|
3023
|
3023
|
|