ZDBMS/code_drv/Calculate.c

500 lines
13 KiB
C
Raw Permalink Normal View History

2025-02-06 07:35:32 +00:00
/********************************************************************************
Copyright (C), Sinowealth Electronic. Ltd.
Author: Sino
Version: V0.0
Date: 2020/04/26
History:
V2.0 2020/04/26 Preliminary
********************************************************************************/
#include "Main.h"
U8 xdata ucChgingCheckCnt;
U8 xdata ucDsgingCheckCnt;
/*************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: CalcuTemp
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Ӧ<EFBFBD>ȡ<EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*10
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>25<EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ2731+250
*************************************************************************************************/
U16 CalcuTemp(U16 getdata)
{
U8 i;
U16 Temperature;
U32 Tempcalcu;
#if (AFE_ID == 0x34)
Tempcalcu = (U32)getdata*REF_RES_VAL/(32768-getdata);
#else
Tempcalcu= (U32)getdata*REF_RES_VAL/(4096-getdata); //calculte the resistance value of 103AT
if(Tempcalcu > 10)
{
Tempcalcu -= 10;
}
#endif
if(Tempcalcu >= NTC103AT[0]) //look up table to find the resieter correspond temp
{
Temperature = 2731+(TEMP_LOWER_LIMIT *10);
}
else if(Tempcalcu <= NTC103AT[NTC103AT_ARRAY_LEN-1])
{
Temperature = 2731+(TEMP_UPPER_LIMIT *10);
}
else
{
i = ucTempeMiddle; //the ucTempeMiddle must be initialized in InitVar()
if(Tempcalcu > NTC103AT[i])
{
for(i=ucTempeMiddle-1; i>=0; i--)
{
if(Tempcalcu <= NTC103AT[i]) //NTC103AT[i+1]<resis<NTC103AT[i]
{
break;
}
}
}
else
{
for(i=ucTempeMiddle+1; i<NTC103AT_ARRAY_LEN-1; i++)
{
if(Tempcalcu > NTC103AT[i]) //NTC103AT[i-1]<resis<NTC103AT[i]
{
break;
}
}
i--;
}
ucTempeMiddle = i;
2025-02-08 07:27:19 +00:00
#if NTC_SL //SL<53><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Temperature = (U16)(ucTempeMiddle-20)*10+(NTC103AT[i]-Tempcalcu)*10/(NTC103AT[i]-NTC103AT[i+1])+2731;
#else
Temperature = (U16)(ucTempeMiddle-50)*10+(NTC103AT[i]-Tempcalcu)*10/(NTC103AT[i]-NTC103AT[i+1])+2731;
#endif
2025-02-06 07:35:32 +00:00
}
return Temperature;
}
/*************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeGetVol<EFBFBD><EFBFBD>AfeGetTempe
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>AFE<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>Ȳɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*************************************************************************************************/
BOOL AfeGetVol(void)
{
U8 i;
BOOL Result=1;
for(i=ucCellNumOffset; i<(ucCellNum+ucCellNumOffset); i++)
{
if(!AFEReadReg(AFE_CELL1H+2*i, 2, (U8 xdata *)(&AFE.uiCell[i]))) //ͨ<><CDA8>TWI<57><49>ȡVADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD>ѹֵ()
{
Result = 0;
return Result;
}
}
return Result;
}
BOOL AfeGetTempe(void)
{
BOOL Result=1;
if(!AFEReadReg(AFE_TS1H, 2, (U8 xdata *)&AFE.uiTS[0]))
{
Result = 0;
}
if(!AFEReadReg(AFE_TS2H, 2, (U8 xdata *)&AFE.uiTS[1]))
{
Result = 0;
}
if(!AFEReadReg(AFE_TEMP1H, 2, (U8 xdata *)&AFE.uiICTempe[0]))
{
Result = 0;
}
if(ucCellNum > 5) //6~10<31><30>Ӧ<EFBFBD><D3A6>ʱ
{
if(!AFEReadReg(AFE_TEMP2H, 2, (U8 xdata *)&AFE.uiICTempe[1]))
{
Result = 0;
}
}
return Result;
}
/*************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuTempe
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uiTempeMax<EFBFBD><EFBFBD>uiTempeMin
*************************************************************************************************/
void AfeCalcuTempe(void)
{
U16 TempeData;
if(AfeGetTempe())
{
TempeData = CalcuTemp(AFE.uiTS[0]) + E2siTS0Offset; //<2F><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><EFBFBD>1
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.uiTS[0] = TempeData;
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
TempeData = (U32)AFE.uiICTempe[0]*17/10+31; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>1
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.uiICTempe[0] = TempeData;
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
if(ucCellNum > 5) //6~10<31><30>Ӧ<EFBFBD><D3A6>ʱ
{
TempeData = (U32)AFE.uiICTempe[1]*17/10+31; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>2
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.uiICTempe[1] = TempeData;
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
}
uiTempeMin = Info.uiTS[0];
uiTempeMax = Info.uiTS[0];
if(bTempNum)
{
TempeData = CalcuTemp(AFE.uiTS[1]) + E2siTS1Offset; //<2F><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><EFBFBD>2
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.uiTS[1] = TempeData;
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
if(TempeData < uiTempeMin)
{
uiTempeMin = TempeData;
}
else
{
uiTempeMax = TempeData;
}
}
}
}
/*************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuVol
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>СֵuiVadcVmax<EFBFBD><EFBFBD>uiVadcVmin<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD>uiCellVmax<EFBFBD><EFBFBD>uiCellVmin<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
*************************************************************************************************/
void AfeCalcuVol(void)
{
U8 i;
U32 TempPackVol=0, TempCellVol=0;
uiVadcVmax = 0;
uiVadcVmin = 6000;
if(AfeGetVol())
{
for(i=ucCellNumOffset; i<(ucCellNum+ucCellNumOffset); i++)
{
TempCellVol = (U32)AFE.uiCell[i]*CALIVOL/E2uiVPackGain;
if(TempCellVol > uiVadcVmax) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ&<26><>Сֵ
{
uiVadcVmax = TempCellVol;
}
if(TempCellVol < uiVadcVmin)
{
uiVadcVmin = TempCellVol;
}
if(!bBalancingFlg) //if bCellOpenDecFlag this data will throw away
{
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.uiVCell[i] = TempCellVol;
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
TempPackVol += TempCellVol;
}
}
if(!bBalancingFlg)
{
uiCellVmax = uiVadcVmax;
uiCellVmin = uiVadcVmin;
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.ulVoltage = TempPackVol; //Calculate the total voltage
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
}
}
}
/*************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: CurTempOffset
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ͬоƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ADC<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>ֵ
*************************************************************************************************/
S16 code siCurTempOffset[2][13]=
{ /**0****1****2****3***4***5***6***7***8***9**10**11**12**/
{-40, -30, -20, -10, 0, 10, 25, 35, 45, 55, 65, 75, 85},
{ -5, -4, -3, -2, -1, -1, 0, 1, 1, 2, 3, 4, 5},
};
/*************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OffsetCalculate()
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>ʵʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ADC<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD>
*************************************************************************************************/
S16 OffsetCalculate(void)
{
S16 xdata siCadcTempOffset=0; //20220620
U8 xdata i;
for(i=0; i<12; i++)
{
if(Info.uiICTempe[0] <= (((S32)siCurTempOffset[0][i] + siCurTempOffset[0][i+1]) / 2 * 10 + 2731))
{
siCadcTempOffset = siCurTempOffset[1][i];
break;
}
}
return siCadcTempOffset;
}
/*************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuCurr
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>CADC<EFBFBD>ɼ<EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*************************************************************************************************/
void AfeCalcuCurr(void)
{
U8 i;
S32 Tempdata=0;
AFEReadReg(AFE_CURH, 2, (U8 xdata *)&AFE.siCurr); //ͨ<><CDA8>TWI<57><49>ȡCADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD><C4B5><EFBFBD>ֵ
if((AFE.siCurr&0x1000) != 0) //<2F><><EFBFBD><EFBFBD>bit12<31>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>(<28>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֵ)<29><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֵ<EFBFBD><D6B5>λ<EFBFBD><CEBB>0
{
AFE.siCurr|=0xE000;
}
slCadcCurrent = (S32)CALICUR*(AFE.siCurr-E2siCadcOffset+OffsetCalculate())/E2siCadcGain;
slCadcCurBuf[ucCadcCnt] = slCadcCurrent; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>16<31>ε<EFBFBD><CEB5><EFBFBD>ȡƽ<C8A1><C6BD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ֵ
if(++ucCadcCnt >= 16)
{
ucCadcCnt = 0;
}
for(i=0; i<16; i++)
{
Tempdata += slCadcCurBuf[i];
}
slCadcCurAverage = Tempdata/16;
bDSGING = 0; //<2F><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ŵ<EFBFBD>״̬
bCHGING = 0;
if(slCadcCurAverage < (-E2siDfilterCur))
{
if(++ucDsgingCheckCnt >= TIME_50MS_500MS) //<2F><><EFBFBD>ŵ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ10*50mS
{
ucDsgingCheckCnt = TIME_50MS_500MS;
bDSGING = 1;
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.slCurr = slCadcCurAverage;
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
}
}
else if(slCadcCurAverage > E2siDfilterCur)
{
if(++ucChgingCheckCnt >= TIME_50MS_500MS) //<2F><><EFBFBD>ŵ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ10*50mS
{
ucChgingCheckCnt = TIME_50MS_500MS;
bCHGING = 1;
McuPWM2Set(4000, 100);
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.slCurr = slCadcCurAverage;
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
}
}
else
{
#if (UART0_DEFINE != 0)
IrqUart0Dis();
#endif
#if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
#if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
Info.slCurr = 0;
#if (UART0_DEFINE != 0)
IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
#endif
#if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
#if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
}
}
/*************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AFEInfoProcess
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: ÿ50mS<EFBFBD><EFBFBD>ȡAFE<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*************************************************************************************************/
void AFEInfoProcess(void)
{
AFERdFlg();
bVADCFlg = 0;
AfeCalcuVol();
AfeCalcuTempe();
if(bCADCFlg) //<2F><>CADCת<43><D7AA><EFBFBD><EFBFBD><EFBFBD>ɺ󣬲Ŷ<F3A3ACB2>ȡAFE<46><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
bCADCFlg = 0;
AfeCalcuCurr();
}
}