254 lines
7.3 KiB
C
254 lines
7.3 KiB
C
|
/********************************************************************************
|
|||
|
Copyright (C), Sinowealth Electronic. Ltd.
|
|||
|
Author: Sino
|
|||
|
Version: V0.0
|
|||
|
Date: 2020/04/26
|
|||
|
History:
|
|||
|
V2.0 2020/04/26 Preliminary
|
|||
|
********************************************************************************/
|
|||
|
#include "Main.h"
|
|||
|
|
|||
|
|
|||
|
BOOL bBalanceFlg;
|
|||
|
BOOL bBalancingFlg;
|
|||
|
BOOL bBalanceOddFlg;
|
|||
|
BOOL bCTOValidFlg; //<2F><><EFBFBD><EFBFBD>оѹ<D0BE><EFBFBD><EEB3AC>1200mVʱ<56><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ڶ<EFBFBD><DAB6>ߣ<EFBFBD><DFA3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>2V<32><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL bCellOpenDecFlag;
|
|||
|
U16 xdata uiBalanceChannel;
|
|||
|
U8 xdata ucBalanceTimeCnt;
|
|||
|
U8 xdata ucBalanceStep;
|
|||
|
U8 xdata ucCellOpenDecCnt;
|
|||
|
U8 xdata ucCtoCnt;
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: BalTurnOnCheck
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>:
|
|||
|
1. ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ѹ<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
2. ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
3. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>
|
|||
|
*************************************************************************************************/
|
|||
|
void BalTurnOnCheck(void)
|
|||
|
{
|
|||
|
U8 i;
|
|||
|
|
|||
|
if(!bBalancingFlg && !bCellOpenDecFlag) //<2F><>һ<EFBFBD><D2BB>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
|
|||
|
{
|
|||
|
if(bBAL_EN)
|
|||
|
{
|
|||
|
uiBalanceChannel = 0;
|
|||
|
if(((uiCellVmax>E2uiOVvol)&&(!bOV)) //<2F><><EFBFBD><EFBFBD><EFBFBD>¶ȱ<C2B6><C8B1><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>,<2C>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ѹ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹʱ<D6B9><CAB1>ͣƽ<CDA3><C6BD>
|
|||
|
||((uiCellVmax < E2uiOVRvol)&&(bOV))
|
|||
|
|| bOTC || bUTC || bOTD || bUTD)
|
|||
|
{
|
|||
|
bBalanceFlg = 0;
|
|||
|
ucBalanceTimeCnt = 0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(((uiCellVmax>E2uiBalanceVol) && (uiCellVmax-uiCellVmin)>=E2uiBalanceVolDiff) && (Info.slCurr>=E2siBalCurrent))
|
|||
|
{
|
|||
|
if(!bBalanceFlg)
|
|||
|
{
|
|||
|
ucBalanceTimeCnt++;
|
|||
|
}
|
|||
|
if(ucBalanceTimeCnt >= BAL_DELAY_CNT)
|
|||
|
{
|
|||
|
for(i=ucCellNumOffset; i<ucCellNumOffset+ucCellNum; i++)
|
|||
|
{
|
|||
|
if(((Info.uiVCell[i]-uiCellVmin)>=E2uiBalanceVolDiff)&&(Info.uiVCell[i]>=E2uiBalanceVol)) //<2F><>о<EFBFBD><D0BE>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>оƽ<D0BE><C6BD>
|
|||
|
{
|
|||
|
uiBalanceChannel |= (1<<i);
|
|||
|
}
|
|||
|
}
|
|||
|
bBalanceFlg = 1;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
bBalanceFlg = 0;
|
|||
|
ucBalanceTimeCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*******************************************************************************
|
|||
|
Function: CTOCheckVol(void)
|
|||
|
Description:
|
|||
|
Input:
|
|||
|
Output:
|
|||
|
Others:
|
|||
|
*******************************************************************************/
|
|||
|
BOOL CTOCheckVol(void)
|
|||
|
{
|
|||
|
BOOL bResult=0;
|
|||
|
|
|||
|
if(bCTO_EN) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>֧<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><DFBC><EFBFBD>
|
|||
|
{
|
|||
|
if(!bCTO) //<2F><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><E2B5BD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD><D9BC><EFBFBD>
|
|||
|
{
|
|||
|
if(bCTOValidFlg) //<2F>жϵ<D0B6>ѹѹ<D1B9><D1B9><EFBFBD>Ƿ<C7B7>1.2V
|
|||
|
{
|
|||
|
if(uiVadcVmin < VOL_CELL_CUT_180MV) //180mV
|
|||
|
{
|
|||
|
bResult = 1;
|
|||
|
if(++ucCtoCnt >= TIME_50MS_500MS) //<2F><><EFBFBD><EFBFBD> 500mS
|
|||
|
{
|
|||
|
bCTO = 1;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
bCTOValidFlg = 0;
|
|||
|
ucCtoCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#ifdef SP_CTO_RECOVER
|
|||
|
else //<2F><><EFBFBD>ָ<DFBB><D6B8><EFBFBD><EFBFBD>ܣ<EFBFBD>ÿ250mSһ<53><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>С<EFBFBD><D0A1>ѹ
|
|||
|
{
|
|||
|
if(uiVadcVmin >= VOL_CELL_CUT_180MV) //180mV
|
|||
|
{
|
|||
|
if(++ucCtoRCnt >= TIME_250MS_1S)
|
|||
|
{
|
|||
|
bCTO = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ucCtoRCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
return bResult;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: BalProcess
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>:
|
|||
|
1. ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD>Ϊ5<EFBFBD><EFBFBD>STEP<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>250mS
|
|||
|
2. ƽ<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><100/(250mS*2)(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>żƽ<EFBFBD><EFBFBD>)
|
|||
|
3. <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>
|
|||
|
4. ƽ<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>ʱ250mS(һ<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
*************************************************************************************************/
|
|||
|
void BalProcess(void)
|
|||
|
{
|
|||
|
U16 BalChTemp;
|
|||
|
|
|||
|
//<2F>жϵ<D0B6>о<EFBFBD><D0BE>ѹѹ<D1B9><D1B9><EFBFBD>Ƿ<C7B7>1.2V<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>ѹ<2V<32><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ᴥ<EFBFBD><E1B4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F>жϵ<D0B6>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>Ƿ<EFBFBD>С<EFBFBD><D0A1>1.38V<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>
|
|||
|
if((uiCellVmax-uiCellVmin>=VOL_CELL_CUT_1200MV) || (uiCellVmax<=VOL_CELL_CUT_1380MV))
|
|||
|
{
|
|||
|
bCTOValidFlg = 1;
|
|||
|
}
|
|||
|
|
|||
|
switch(ucBalanceStep)
|
|||
|
{
|
|||
|
case BALANCE_ENABLE: //VADC<44>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>ж<EFBFBD>
|
|||
|
if(bCellOpenDecFlag || bBalanceFlg)
|
|||
|
{
|
|||
|
if(bBalanceOddFlg) //odd balance
|
|||
|
{
|
|||
|
BalChTemp = uiBalanceChannel&0x5555;
|
|||
|
}
|
|||
|
else //even balance
|
|||
|
{
|
|||
|
BalChTemp = uiBalanceChannel&0xAAAA;
|
|||
|
}
|
|||
|
AfeBalCtl(BalChTemp); //<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
|
|||
|
ucBalanceStep = BALANCE_START;
|
|||
|
bBalancingFlg = 1;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case BALANCE_START: //VADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
|
|||
|
ucBalanceStep = BALANCING;
|
|||
|
break;
|
|||
|
|
|||
|
case BALANCING: //VADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>ж϶<D0B6><CFB6><EFBFBD>
|
|||
|
if(!CTOCheckVol()) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
AfeBalCtl(0); //<2F>ر<EFBFBD>ƽ<EFBFBD><C6BD>
|
|||
|
ucBalanceStep = BALANCE_DISABLE;
|
|||
|
bBalanceOddFlg = ~bBalanceOddFlg;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case BALANCE_DISABLE: //VADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
|
|||
|
if(!CTOCheckVol()) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
ucBalanceStep = BALANCE_NULL;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ucBalanceStep = BALANCE_ENABLE;
|
|||
|
bBalanceOddFlg = ~bBalanceOddFlg;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case BALANCE_NULL: //VADC<44>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>ж<EFBFBD>
|
|||
|
ucBalanceStep = BALANCE_ENABLE;
|
|||
|
bCellOpenDecFlag = 0;
|
|||
|
bBalanceFlg = 0;
|
|||
|
bBalancingFlg = 0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: CellOpenProcess
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: ÿ2S<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ζ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*************************************************************************************************/
|
|||
|
void CTOTurnOnCheck(void)
|
|||
|
{
|
|||
|
#ifdef SP_CTO_RECOVER
|
|||
|
if(bCTO_EN) //֧<>ֶ<EFBFBD><D6B6>ָ<DFBB>
|
|||
|
#else
|
|||
|
if(bCTO_EN && !bCTO) //<2F><><EFBFBD><EFBFBD><EFBFBD>ѷ<EFBFBD><D1B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2B2BBBC><EFBFBD>
|
|||
|
#endif
|
|||
|
{
|
|||
|
if(++ucCellOpenDecCnt >= TIME_50MS_2250MS) //2S
|
|||
|
{
|
|||
|
ucCellOpenDecCnt = TIME_50MS_2250MS; //<2F><><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ż<EFBFBD><C5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
|
|||
|
if(!bBalancingFlg) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>⣬<EFBFBD><E2A3AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><D9BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>
|
|||
|
{
|
|||
|
ucCellOpenDecCnt = 0;
|
|||
|
bCellOpenDecFlag = 1;
|
|||
|
uiBalanceChannel = 0x03ff;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: BalanceProcess
|
|||
|
* <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>
|
|||
|
*************************************************************************************************/
|
|||
|
void BalanceProcess(void)
|
|||
|
{
|
|||
|
BalTurnOnCheck(); //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><E2BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
CTOTurnOnCheck(); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>
|
|||
|
|
|||
|
BalProcess(); //<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|