aboutsummaryrefslogtreecommitdiffstats
path: root/src/temperature/temperature.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/temperature/temperature.c')
-rw-r--r--src/temperature/temperature.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/temperature/temperature.c b/src/temperature/temperature.c
new file mode 100644
index 0000000..b9e95e2
--- /dev/null
+++ b/src/temperature/temperature.c
@@ -0,0 +1,17 @@
+#include "stm32f4xx_conf.h"
+
+#include "temperature.h"
+
+float temperature_value = 0;
+
+void temperature_update() {
+ ADC_SoftwareStartConv(ADC1); //Start the conversion
+
+ while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
+
+ temperature_value = ((ADC_GetConversionValue(ADC1) * TEMP_V_BOARD / 0xFFF) - TEMP_V25) / TEMP_AVG_SLOPE + 25.0;
+}
+
+float temperature_get() {
+ return temperature_value;
+}