From: haxar Date: Sat, 3 Mar 2012 01:15:21 +0000 (-0800) Subject: make analog2tempBed return a precise celsius reading for BED_USES_THERMISTOR, complem... X-Git-Tag: iwj-success-2012-07-29~73^2^2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=79a466ca26770c26f8581804ab0d37e486b35fd3;p=marlin.git make analog2tempBed return a precise celsius reading for BED_USES_THERMISTOR, complementing changes to analog2temp in d15f01e --- diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 1155d88..77f9491 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -397,7 +397,7 @@ float analog2temp(int raw, uint8_t e) { // For bed temperature measurement. float analog2tempBed(int raw) { #ifdef BED_USES_THERMISTOR - int celsius = 0; + float celsius = 0; byte i; raw = (1023 * OVERSAMPLENR) - raw; @@ -408,9 +408,8 @@ float analog2tempBed(int raw) { { celsius = PGM_RD_W(bedtemptable[i-1][1]) + (raw - PGM_RD_W(bedtemptable[i-1][0])) * - (PGM_RD_W(bedtemptable[i][1]) - PGM_RD_W(bedtemptable[i-1][1])) / - (PGM_RD_W(bedtemptable[i][0]) - PGM_RD_W(bedtemptable[i-1][0])); - + (float)(PGM_RD_W(bedtemptable[i][1]) - PGM_RD_W(bedtemptable[i-1][1])) / + (float)(PGM_RD_W(bedtemptable[i][0]) - PGM_RD_W(bedtemptable[i-1][0])); break; } } @@ -419,13 +418,12 @@ float analog2tempBed(int raw) { if (i == bedtemptable_len) celsius = PGM_RD_W(bedtemptable[i-1][1]); return celsius; - #elif defined BED_USES_AD595 return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET; #else #warning No heater-type defined for the bed. + return 0; #endif - return 0; } void tp_init()