From 79a466ca26770c26f8581804ab0d37e486b35fd3 Mon Sep 17 00:00:00 2001
From: haxar <grezski@gmail.com>
Date: Fri, 2 Mar 2012 17:15:21 -0800
Subject: [PATCH] make analog2tempBed return a precise celsius reading for
BED_USES_THERMISTOR, complementing changes to analog2temp in d15f01e
---
Marlin/temperature.cpp | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index 1155d88cf4..77f9491abd 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()
--
GitLab