466 lines
9.6 KiB
C
466 lines
9.6 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"
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صIJ<D8B5><C4B2><EFBFBD>
|
|||
|
BOOL bUVLock; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿѹ<C7B7>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ñ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bUV<55><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷź<CDB7><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bUV
|
|||
|
BOOL bOVLock; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ñ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bOV<4F><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷź<CDB7><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bOV
|
|||
|
U16 xdata uiOVDelayCnt;
|
|||
|
U16 xdata uiOVRDelayCnt;
|
|||
|
U16 xdata uiUVDelayCnt;
|
|||
|
U16 xdata uiUVRDelayCnt;
|
|||
|
U16 xdata uiOTCDelayCnt;
|
|||
|
U16 xdata uiOTCRDelayCnt;
|
|||
|
U16 xdata uiUTCDelayCnt;
|
|||
|
U16 xdata uiUTCRDelayCnt;
|
|||
|
U16 xdata uiOTDDelayCnt;
|
|||
|
U16 xdata uiOTDRDelayCnt;
|
|||
|
U16 xdata uiUTDDelayCnt;
|
|||
|
U16 xdata uiUTDRDelayCnt;
|
|||
|
U16 xdata uiOCCDelayCnt;
|
|||
|
U16 xdata uiOCD1DelayCnt;
|
|||
|
U16 xdata uiOCD2DelayCnt;
|
|||
|
U16 xdata uiOCCRcnt;
|
|||
|
U16 xdata uiOCDRcnt;
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectOV
|
|||
|
* <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>λbOVΪ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectOV(void)
|
|||
|
{
|
|||
|
if(!(bOV||bAFE_OV))
|
|||
|
{
|
|||
|
if(uiCellVmax > E2uiOVvol)
|
|||
|
{
|
|||
|
if(++uiOVDelayCnt >= OV_DELAY_CNT)
|
|||
|
{
|
|||
|
bOV = 1;
|
|||
|
bOVLock = 0;
|
|||
|
uiOVDelayCnt = 0;
|
|||
|
uiOVRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiCellVmax < E2uiOVRvol)
|
|||
|
{
|
|||
|
uiOVDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(!bOVLock)
|
|||
|
{
|
|||
|
if(uiCellVmax < E2uiOVRvol)
|
|||
|
{
|
|||
|
if(++uiOVRDelayCnt >= OVR_DELAY_CNT)
|
|||
|
{
|
|||
|
if(bChgerLock)
|
|||
|
{
|
|||
|
bOVLock = 1; //<2F><>ѹ<EFBFBD><D1B9>ֵ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⸺<EFBFBD><E2B8BA><EFBFBD>ͷ<EFBFBD><CDB7>ͷ<EFBFBD>
|
|||
|
bChgerStartCheckFlg = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
bOV = 0;
|
|||
|
bAFE_OV = 0;
|
|||
|
AFEClrFlg();
|
|||
|
}
|
|||
|
uiOVDelayCnt = 0;
|
|||
|
uiOVRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiCellVmax > E2uiOVvol)
|
|||
|
{
|
|||
|
uiOVRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectUV
|
|||
|
* <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>λbUVΪ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectUV(void)
|
|||
|
{
|
|||
|
if(!bUV)
|
|||
|
{
|
|||
|
if(uiCellVmin < E2uiUVvol)
|
|||
|
{
|
|||
|
if(++uiUVDelayCnt >= UV_DELAY_CNT)
|
|||
|
{
|
|||
|
bUV = 1;
|
|||
|
bUVLock = 0;
|
|||
|
uiUVDelayCnt = 0;
|
|||
|
uiUVRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiCellVmin > E2uiUVRvol)
|
|||
|
{
|
|||
|
uiUVDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(!bUVLock)
|
|||
|
{
|
|||
|
if(uiCellVmin > E2uiUVRvol)
|
|||
|
{
|
|||
|
if(++uiUVRDelayCnt >= UVR_DELAY_CNT)
|
|||
|
{
|
|||
|
if(bLoadLock) //<2F><><EFBFBD><EFBFBD>֧<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UV<55><56>־<EFBFBD><D6BE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ͷź<CDB7><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
bUVLock = 1; //Ƿѹ<C7B7><D1B9>ֵ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⸺<EFBFBD><E2B8BA><EFBFBD>ͷ<EFBFBD><CDB7>ͷ<EFBFBD>
|
|||
|
bLoadStartCheckFlg = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
bUV = 0;
|
|||
|
}
|
|||
|
uiUVDelayCnt = 0;
|
|||
|
uiUVRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiCellVmin < E2uiUVvol)
|
|||
|
{
|
|||
|
uiUVRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectOTC
|
|||
|
* <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>λbOTCΪ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectOTC(void)
|
|||
|
{
|
|||
|
if(!bOTC)
|
|||
|
{
|
|||
|
if(uiTempeMax > E2uiTempOTC)
|
|||
|
{
|
|||
|
if(++uiOTCDelayCnt >= TEMPE_DELAY_CNT)
|
|||
|
{
|
|||
|
bOTC = 1;
|
|||
|
uiOTCDelayCnt = 0;
|
|||
|
uiOTCRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiTempeMax < E2uiTempOTCR)
|
|||
|
{
|
|||
|
uiOTCDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(uiTempeMax < E2uiTempOTCR)
|
|||
|
{
|
|||
|
if(++uiOTCRDelayCnt >= TEMPER_DELAY_CNT)
|
|||
|
{
|
|||
|
bOTC = 0;
|
|||
|
uiOTCDelayCnt = 0;
|
|||
|
uiOTCRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiTempeMax > E2uiTempOTC)
|
|||
|
{
|
|||
|
uiOTCRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectUTC
|
|||
|
* <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>λbUTCΪ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectUTC(void)
|
|||
|
{
|
|||
|
if(!bUTC)
|
|||
|
{
|
|||
|
if(uiTempeMin < E2uiTempUTC)
|
|||
|
{
|
|||
|
if(++uiUTCDelayCnt >= TEMPE_DELAY_CNT)
|
|||
|
{
|
|||
|
bUTC = 1;
|
|||
|
uiUTCDelayCnt = 0;
|
|||
|
uiUTCRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiTempeMin > E2uiTempUTCR)
|
|||
|
{
|
|||
|
uiUTCDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(uiTempeMin > E2uiTempUTCR)
|
|||
|
{
|
|||
|
if(++uiUTCRDelayCnt >= TEMPER_DELAY_CNT)
|
|||
|
{
|
|||
|
bUTC = 0;
|
|||
|
uiUTCDelayCnt = 0;
|
|||
|
uiUTCRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiTempeMin < E2uiTempUTC)
|
|||
|
{
|
|||
|
uiUTCRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectOTD
|
|||
|
* <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>λbOTDΪ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectOTD(void)
|
|||
|
{
|
|||
|
if(!bOTD)
|
|||
|
{
|
|||
|
if(uiTempeMax > E2uiTempOTD)
|
|||
|
{
|
|||
|
if(++uiOTDDelayCnt >= TEMPE_DELAY_CNT)
|
|||
|
{
|
|||
|
bOTD = 1;
|
|||
|
uiOTDDelayCnt = 0;
|
|||
|
uiOTDRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiTempeMax < E2uiTempOTDR)
|
|||
|
{
|
|||
|
uiOTDDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(uiTempeMax < E2uiTempOTDR)
|
|||
|
{
|
|||
|
if(++uiOTDRDelayCnt >= TEMPER_DELAY_CNT)
|
|||
|
{
|
|||
|
bOTD = 0;
|
|||
|
uiOTDDelayCnt = 0;
|
|||
|
uiOTDRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiTempeMax > E2uiTempOTD)
|
|||
|
{
|
|||
|
uiOTDRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectUTD
|
|||
|
* <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>λbUTDΪ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectUTD(void)
|
|||
|
{
|
|||
|
if(!bUTD)
|
|||
|
{
|
|||
|
if(uiTempeMin < E2uiTempUTD)
|
|||
|
{
|
|||
|
if(++uiUTDDelayCnt >= TEMPE_DELAY_CNT)
|
|||
|
{
|
|||
|
bUTD = 1;
|
|||
|
uiUTDDelayCnt = 0;
|
|||
|
uiUTDRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiTempeMin > E2uiTempUTDR)
|
|||
|
{
|
|||
|
uiUTDDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(uiTempeMin > E2uiTempUTDR)
|
|||
|
{
|
|||
|
if(++uiUTDRDelayCnt >= TEMPER_DELAY_CNT)
|
|||
|
{
|
|||
|
bUTD = 0;
|
|||
|
uiUTDDelayCnt = 0;
|
|||
|
uiUTDRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(uiTempeMin < E2uiTempUTD)
|
|||
|
{
|
|||
|
uiUTDRDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectOCC
|
|||
|
* <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>λbOCCΪ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectOCC(void)
|
|||
|
{
|
|||
|
if(!bOCC)
|
|||
|
{
|
|||
|
if(slCadcCurrent > E2slOCCCurrent)
|
|||
|
{
|
|||
|
if(++uiOCCDelayCnt >= OCC_DELAY_CNT)
|
|||
|
{
|
|||
|
bOCC = 1;
|
|||
|
bChgerStartCheckFlg = 1; //<2F><><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
uiOCCDelayCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(!bChgerChkingFlg)
|
|||
|
{
|
|||
|
if(uiOCCDelayCnt > 0)
|
|||
|
{
|
|||
|
uiOCCDelayCnt--;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectOCD1
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
|
|||
|
* <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>λbOCD1Ϊ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectOCD1(void)
|
|||
|
{
|
|||
|
if(!bOCD1)
|
|||
|
{
|
|||
|
if(slCadcCurrent < E2slOCD1Current)
|
|||
|
{
|
|||
|
if(++uiOCD1DelayCnt >= OCD1_DELAY_CNT)
|
|||
|
{
|
|||
|
uiOCD1DelayCnt = 0;
|
|||
|
bOCD1 = 1;
|
|||
|
bLoadStartCheckFlg = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
else if(!bLoadChkingFlg)
|
|||
|
{
|
|||
|
if(uiOCD1DelayCnt > 0)
|
|||
|
{
|
|||
|
uiOCD1DelayCnt--;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectOCD2
|
|||
|
* <EFBFBD><EFBFBD> <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>λbOCD2Ϊ1
|
|||
|
*************************************************************************************************/
|
|||
|
void ProtectOCD2(void)
|
|||
|
{
|
|||
|
if(!bOCD2)
|
|||
|
{
|
|||
|
if(slCadcCurrent < E2slOCD2Current)
|
|||
|
{
|
|||
|
if(++uiOCD2DelayCnt > OCD2_DELAY_CNT)
|
|||
|
{
|
|||
|
uiOCD2DelayCnt = 0;
|
|||
|
bOCD2 = 1;
|
|||
|
bLoadStartCheckFlg = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
else if(!bLoadChkingFlg)
|
|||
|
{
|
|||
|
if(uiOCD2DelayCnt > 0)
|
|||
|
{
|
|||
|
uiOCD2DelayCnt--;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectProcess
|
|||
|
* <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 ProtectProcess(void)
|
|||
|
{
|
|||
|
if(!bPorSelfTestFlg) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>1s<31>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><F2B2BBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
ProtectOV(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
|||
|
ProtectUV(); //<2F><><EFBFBD><EFBFBD>Ƿѹ<C7B7><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
|||
|
|
|||
|
ProtectOTC(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
|||
|
ProtectUTC(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
|||
|
ProtectOTD(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
|||
|
ProtectUTD(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
|||
|
|
|||
|
ProtectOCC(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ProtectOCD1(); //<2F>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
|
|||
|
ProtectOCD2(); //<2F>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ProtectOCRecover
|
|||
|
* <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 ProtectOCRecover(void)
|
|||
|
{
|
|||
|
if(bOCRC_EN)
|
|||
|
{
|
|||
|
if(bOCD1 || bOCD2 || bAFE_SC)
|
|||
|
{
|
|||
|
if(++uiOCDRcnt >= OCDR_DELAY_CNT)
|
|||
|
{
|
|||
|
ucLoadRCnt = 0;
|
|||
|
uiOCDRcnt = 0;
|
|||
|
bOCD1 = 0;
|
|||
|
bOCD2 = 0;
|
|||
|
bLoadStartCheckFlg = 0;
|
|||
|
bLoadChkingFlg = 0;
|
|||
|
if(bAFE_SC)
|
|||
|
{
|
|||
|
bAFE_SC = 0;
|
|||
|
AFEClrFlg();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if(bOCC)
|
|||
|
{
|
|||
|
if(++uiOCCRcnt > OCCR_DELAY_CNT)
|
|||
|
{
|
|||
|
uiOCCRcnt = 0;
|
|||
|
bOCC = 0;
|
|||
|
ucChgerRCnt = 0;
|
|||
|
bChgerChkingFlg = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|