From d6356de1b68b21bce5dcdc32e018192fd0a696d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Sat, 9 Jan 2021 22:28:22 +0100 Subject: [PATCH] Fix calculation of safety ADC monitors. --- stm-firmware/safety/safety-adc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stm-firmware/safety/safety-adc.c b/stm-firmware/safety/safety-adc.c index 8e3b4e1..04e4f3d 100644 --- a/stm-firmware/safety/safety-adc.c +++ b/stm-firmware/safety/safety-adc.c @@ -107,16 +107,16 @@ float safety_adc_convert_channel(enum safety_adc_meas_channel channel, uint16_t switch (channel) { case SAFETY_ADC_MEAS_TEMP: - converted_val = (((float)analog_value / 4095.0f * 2500.0f - SAFETY_ADC_TEMP_NOM_MV) / + converted_val = (((float)analog_value / 4096.0f * 2500.0f - SAFETY_ADC_TEMP_NOM_MV) / SAFETY_ADC_TEMP_MV_SLOPE) + SAFETY_ADC_TEMP_NOM; break; case SAFETY_ADC_MEAS_VREF: - converted_val = (SAFETY_ADC_INT_REF_MV * 4095.0f) / (float)analog_value; + converted_val = (SAFETY_ADC_INT_REF_MV * 4096.0f) / (float)analog_value; break; case SAFETY_ADC_MEAS_SUPPLY: hw_rev = get_pcb_hardware_version(); if (hw_rev >= HW_REV_V1_3) - converted_val = ((float)analog_value) / 4095.0f * 2500.0f * 2.0f; + converted_val = ((float)analog_value) / 4096.0f * 2500.0f * 2.0f; else converted_val = 3300.0f; break;