diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2023-12-17 15:11:10 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2023-12-17 15:13:47 +0100 |
commit | 6f00ffb0f016413522bd54dc9e44beb92864df02 (patch) | |
tree | 7fc919bbfd84cd6da35d1e36ae22fa85d3b9729b /src/temperature | |
parent | 7f46a3879c9c76aa817cc27fb39718b8dd813f96 (diff) | |
download | glutte-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.c | 4 | ||||
-rw-r--r-- | src/temperature/temperature.c | 5 | ||||
-rw-r--r-- | src/temperature/temperature.h | 4 |
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); |