further optimize ntc math
This commit is contained in:
parent
1abe7bfed6
commit
e5dd0e0012
@ -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);
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user