aboutsummaryrefslogtreecommitdiffstats
path: root/src/temperature
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2023-12-17 15:11:10 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2023-12-17 15:13:47 +0100
commit6f00ffb0f016413522bd54dc9e44beb92864df02 (patch)
tree7fc919bbfd84cd6da35d1e36ae22fa85d3b9729b /src/temperature
parent7f46a3879c9c76aa817cc27fb39718b8dd813f96 (diff)
downloadglutte-o-matic-6f00ffb0f016413522bd54dc9e44beb92864df02.tar.gz
glutte-o-matic-6f00ffb0f016413522bd54dc9e44beb92864df02.tar.bz2
glutte-o-matic-6f00ffb0f016413522bd54dc9e44beb92864df02.zip
Keep temperature valid for 15 minutes
Diffstat (limited to 'src/temperature')
-rw-r--r--src/temperature/main.c4
-rw-r--r--src/temperature/temperature.c5
-rw-r--r--src/temperature/temperature.h4
3 files changed, 8 insertions, 5 deletions
diff --git a/src/temperature/main.c b/src/temperature/main.c
index 2ee9bc6..06b753f 100644
--- a/src/temperature/main.c
+++ b/src/temperature/main.c
@@ -97,7 +97,9 @@ static void detect_button_press(void *pvParameters)
char t[32];
// For debugging purposes only. snprinf has issues with %f
- snprintf(t, 32, "%d.%02d", (int)temperature_get(), (int)(temperature_get() * 100.0 - (int)(temperature_get()) * 100.0));
+ float temp = 0;
+ int temp_valid = temperature_get(&temp);
+ snprintf(t, 32, "%d.%02d", (int)temp, (int)(temp * 100.0 - (int)temp * 100.0));
debug_print(t);
int32_t pressure = 0;
diff --git a/src/temperature/temperature.c b/src/temperature/temperature.c
index b9e95e2..575fa79 100644
--- a/src/temperature/temperature.c
+++ b/src/temperature/temperature.c
@@ -12,6 +12,7 @@ void temperature_update() {
temperature_value = ((ADC_GetConversionValue(ADC1) * TEMP_V_BOARD / 0xFFF) - TEMP_V25) / TEMP_AVG_SLOPE + 25.0;
}
-float temperature_get() {
- return temperature_value;
+int temperature_get(float *temp) {
+ *temp = temperature_value;
+ return 1;
}
diff --git a/src/temperature/temperature.h b/src/temperature/temperature.h
index ebe8f8b..0c1ba2e 100644
--- a/src/temperature/temperature.h
+++ b/src/temperature/temperature.h
@@ -5,5 +5,5 @@
// Conpute the current temperature
void temperature_update();
-// Return the current temperature
-float temperature_get();
+// Return 1 if the the current temperature is valid, and write it into temp
+int temperature_get(float *temp);