Merge pull request #5071 from esenapaj/Extend-measuring-range-of-thermocouple
Extend measuring range of thermocouple for MAX31855
This commit is contained in:
commit
14f824c3de
2 changed files with 11 additions and 3 deletions
|
@ -222,8 +222,12 @@
|
||||||
#if TEMP_SENSOR_0 == -3
|
#if TEMP_SENSOR_0 == -3
|
||||||
#define HEATER_0_USES_MAX6675
|
#define HEATER_0_USES_MAX6675
|
||||||
#define MAX6675_IS_MAX31855
|
#define MAX6675_IS_MAX31855
|
||||||
|
#define MAX6675_TMIN -270
|
||||||
|
#define MAX6675_TMAX 1800
|
||||||
#elif TEMP_SENSOR_0 == -2
|
#elif TEMP_SENSOR_0 == -2
|
||||||
#define HEATER_0_USES_MAX6675
|
#define HEATER_0_USES_MAX6675
|
||||||
|
#define MAX6675_TMIN 0
|
||||||
|
#define MAX6675_TMAX 1024
|
||||||
#elif TEMP_SENSOR_0 == -1
|
#elif TEMP_SENSOR_0 == -1
|
||||||
#define HEATER_0_USES_AD595
|
#define HEATER_0_USES_AD595
|
||||||
#elif TEMP_SENSOR_0 == 0
|
#elif TEMP_SENSOR_0 == 0
|
||||||
|
|
|
@ -669,8 +669,8 @@ void Temperature::manage_heater() {
|
||||||
updateTemperaturesFromRawValues(); // also resets the watchdog
|
updateTemperaturesFromRawValues(); // also resets the watchdog
|
||||||
|
|
||||||
#if ENABLED(HEATER_0_USES_MAX6675)
|
#if ENABLED(HEATER_0_USES_MAX6675)
|
||||||
if (current_temperature[0] > min(HEATER_0_MAXTEMP, 1023)) max_temp_error(0);
|
if (current_temperature[0] > min(HEATER_0_MAXTEMP, MAX6675_TMAX - 1)) max_temp_error(0);
|
||||||
if (current_temperature[0] < max(HEATER_0_MINTEMP, 0.01)) min_temp_error(0);
|
if (current_temperature[0] < max(HEATER_0_MINTEMP, MAX6675_TMIN + 0.01)) min_temp_error(0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0) || (ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0) || DISABLED(PIDTEMPBED) || HAS_AUTO_FAN
|
#if (ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0) || (ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0) || DISABLED(PIDTEMPBED) || HAS_AUTO_FAN
|
||||||
|
@ -1355,10 +1355,14 @@ void Temperature::disable_all_heaters() {
|
||||||
#else
|
#else
|
||||||
SERIAL_ERRORLNPGM("MAX6675");
|
SERIAL_ERRORLNPGM("MAX6675");
|
||||||
#endif
|
#endif
|
||||||
max6675_temp = 4000; // thermocouple open
|
max6675_temp = MAX6675_TMAX * 4; // thermocouple open
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
max6675_temp >>= MAX6675_DISCARD_BITS;
|
max6675_temp >>= MAX6675_DISCARD_BITS;
|
||||||
|
#if ENABLED(MAX6675_IS_MAX31855)
|
||||||
|
// Support negative temperature
|
||||||
|
if (max6675_temp & 0x00002000) max6675_temp |= 0xffffc000;
|
||||||
|
#endif
|
||||||
|
|
||||||
return (int)max6675_temp;
|
return (int)max6675_temp;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue