From e5dd0e0012944c0a99f2542c87864b44f234dec6 Mon Sep 17 00:00:00 2001 From: Moritz Ruffer Date: Fri, 28 Mar 2025 16:48:52 +0100 Subject: [PATCH] further optimize ntc math --- AMS_Master_Code/Core/Inc/NTC.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AMS_Master_Code/Core/Inc/NTC.h b/AMS_Master_Code/Core/Inc/NTC.h index b6eef11..d694496 100644 --- a/AMS_Master_Code/Core/Inc/NTC.h +++ b/AMS_Master_Code/Core/Inc/NTC.h @@ -20,11 +20,12 @@ // With R_T/R_0 and R_0 = R_T@25C // R_T/R_0 = 1 / V_REF / ADC - 1 +[[gnu::optimize("fast-math")]] static inline uint16_t ntc_adc_to_celsius(int16_t adc_codes) { // Calculate voltage from ADC int16_t adc_mV = mV_from_ADBMS6830(adc_codes); - float log_ohms = logf(1/((VREF_mV/adc_mV)-1)); + float log_ohms = logf(1 / ((VREF_mV/adc_mV) - 1)); return (uint16_t) (TEMP_CONV / (NTC_A1 + NTC_B1 * log_ohms + NTC_C1 * log_ohms * log_ohms + NTC_D1 * log_ohms * log_ohms * log_ohms) - CELSIUS_TO_KELVIN_SCALED); }