diff options
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); |