From 933949dcffc1e9a22bc49abcf3b0af52f5bb4b7c Mon Sep 17 00:00:00 2001 From: Elp03 Date: Tue, 16 Apr 2024 17:24:54 +0200 Subject: [PATCH] Fix variable name and led --- prosjekt.X/themistor-temp.h | 8 +++++-- prosjekt.X/thermistor-temp.c | 41 +++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/prosjekt.X/themistor-temp.h b/prosjekt.X/themistor-temp.h index d544435..4d85568 100644 --- a/prosjekt.X/themistor-temp.h +++ b/prosjekt.X/themistor-temp.h @@ -18,10 +18,12 @@ extern "C" { #include #include #include -#define R_t0 10000 +#include +#define R_T0 10000 #define T_0 298.15 #define B 3950 #define R_1 1000 +#define ledpin PIN3_bm // Takes inn messured value // Calculates the temperature in celcius @@ -32,8 +34,10 @@ float calculate_thermistor_temp(float readValue); // Returns true if temperatur is higher than max_temp bool voltage_threshold_bool(float thermistor_temp, uint8_t max_temp); -void voltage_threshold_exceeded(bool voltage_threshold_bool); +void alert_voltage_threshold_exceeded(bool voltage_threshold_bool); +// Initialise led +void init_led(); #ifdef __cplusplus } diff --git a/prosjekt.X/thermistor-temp.c b/prosjekt.X/thermistor-temp.c index 2d333f8..71933a5 100644 --- a/prosjekt.X/thermistor-temp.c +++ b/prosjekt.X/thermistor-temp.c @@ -1,46 +1,49 @@ #include "themistor-temp.h" + +void init_led(){ + PORTB.DIRSET = ledpin; +} + float calculate_thermistor_temp(float thermistor_voltage){ - float R_therm; + float R_thermistor; float V_1; float ln; - float T_therm; - float V_therm; - uint8_t V_tot = 5; + float T_thermistor; + float V_thermistor; + #define V_TOT 5 // Calculate Voltage over thermistor - V_therm = (V_tot/1024)*thermistor_voltage; + V_thermistor = (V_TOT/1024)*thermistor_voltage; // Voltage accross R_1 - V_1 = V_tot - V_therm; + V_1 = V_TOT - V_thermistor; // Calculate Thermistor resistanse - R_therm = (V_therm)/ (V_1 / R_1); + R_thermistor = (V_thermistor)/ (V_1 / R_1); // Steinhart-Harts formula - ln = log(R_therm/R_t0); - T_therm = (1/ ((ln/B) + (1/T_0))); + ln = log(R_thermistor/R_T0); + T_thermistor = (1/ ((ln/B) + (1/T_0))); // Temperatur in celcius - T_therm -= 273.15; + T_thermistor -= 273.15; - return T_therm; + return T_thermistor; } // returns error message if the messured thermistor temp is higher than // Choosen max_temp bool voltage_threshold_bool(float thermistor_temp, uint8_t max_temp){ // Return true if temp is higher then max value - if (thermistor_temp >= max_temp){ - return true; - } - else { - return false; - } + return (thermistor_temp >= max_temp); } //print if the maximum threshold is exceeded. -void voltage_threshold_exceeded(bool voltage_threshold_bool){ +void alert_voltage_threshold_exceeded(bool voltage_threshold_bool){ if (voltage_threshold_bool){ printf("Error: maximum temperature exceeded"); - } + PORTB.OUTSET = ledpin; + } else{ + PORTB.OUTCLR = ledpin; + } } \ No newline at end of file