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;