давно это было //
//вычисление истинных значений
void AnalogInTru(void)
{
//Копируем
AnalogInV_t AnalogInTmp;
AnalogInTmp.In0=AnalogInF.In0;
AnalogInTmp.In1=AnalogInF.In1;
AnalogInTmp.Vref=AnalogInF.Vref;
AnalogInTmp.TempSensor=AnalogInF.TempSensor;
//Вычисление истинных значений
//напряжение питания
AnalogInV.Vref=(VREFINT_CAL_VREF*(*VREFINT_CAL_ADDR))/AnalogInTmp.Vref;
#if AnalogIn0Delit==0
//напряжение 0
AnalogInV.In0=((unsigned long)AnalogInV.Vref*AnalogInTmp.In0)>>12;
#else
//напряжение 0 с учетом делителя
AnalogInV.In0=((((unsigned long)AnalogInV.Vref*AnalogInTmp.In0)>>12)*(AnalogIn0R1+AnalogIn0R2))/(AnalogIn0R2);
#endif
#if AnalogIn1Delit==0
//напряжение 1
AnalogInV.In1=((unsigned long)AnalogInV.Vref*AnalogInTmp.In1)>>12;
#else
//напряжение 1 с учетом делителя
AnalogInV.In1=((((unsigned long)AnalogInV.Vref*AnalogInTmp.In1)>>12)*(AnalogIn1R1+AnalogIn1R2))/AnalogIn1R2;
#endif
//температура
signed short TempSensor=(AnalogInTmp.TempSensor*AnalogInV.Vref)/TEMPSENSOR_CAL_VREFANALOG;
AnalogInV.TempSensor=(
(TEMPSENSOR_CAL2_TEMP-TEMPSENSOR_CAL1_TEMP)*
(TempSensor-(*TEMPSENSOR_CAL1_ADDR))
)
/
((*TEMPSENSOR_CAL2_ADDR)-(*TEMPSENSOR_CAL1_ADDR))
+
29;
return;
}
//