40 lines
1.2 KiB
C
40 lines
1.2 KiB
C
#include "../main/SystemInclude.h"
|
|
|
|
// for compute buffer
|
|
float RRExtGain;
|
|
u16 RRExtGainRes;
|
|
|
|
/******************************************************************************/
|
|
void RHCircuitParameterInit(void)
|
|
{
|
|
// A type external gain res
|
|
RRExtGainRes = (u16)ReadParameterFromEEPROM(RR_GAINRES, RR_GAINRES_WIDTH, RR_GAINRES_DEFAULT);
|
|
RRExtGain = (float)RR_OPGAIN_RES;
|
|
RRExtGain /= (float)RRExtGainRes;
|
|
RRExtGain += 1.0;
|
|
RRExtGain = 1.0/RRExtGain;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
void ComputeRRParameter(void)
|
|
{
|
|
float tmpRR;
|
|
|
|
//===========================================================================
|
|
// compute VRR ADC INPUT
|
|
tmpSLA = (u32)voltageDetected[RRIDX];
|
|
tmpSLA -= (u32)32768;
|
|
tmpRR = (float)VRR_VREF;
|
|
tmpRR *= (float)tmpSLA;
|
|
tmpRR += (float)VRR_VDC;
|
|
voltageDetected[NVRR] = (u16)tmpRR;
|
|
|
|
//===========================================================================
|
|
// compute RR
|
|
tmpRR *= (float)RRExtGain;
|
|
tmpRR = (VRR_RREF*tmpRR)/(VREF-tmpRR);
|
|
|
|
voltageDetected[NRR] = (u16)tmpRR;
|
|
voltageDetected[NRR] = MovingAverage(voltageDetected[NRR], 30, NRR);
|
|
}
|