156 lines
3.0 KiB
C
156 lines
3.0 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 bLedDisFlg; //LED<45><44>ʾ<EFBFBD><CABE>־
|
|||
|
BOOL bLedDisBleFlg; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʾ
|
|||
|
U8 xdata ucLedTimeCnt;
|
|||
|
U8 xdata ucLedChgFlickCnt;
|
|||
|
U8 xdata ucLedBleFlickCnt;
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: LedGetDisNum
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: Rsoc<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>LED<EFBFBD><EFBFBD>
|
|||
|
*************************************************************************************************/
|
|||
|
U8 LedGetDisNum(U16 Rsoc)
|
|||
|
{
|
|||
|
if(Rsoc > 80)
|
|||
|
{
|
|||
|
return 5;
|
|||
|
}
|
|||
|
else if(Rsoc > 60)
|
|||
|
{
|
|||
|
return 4;
|
|||
|
}
|
|||
|
else if(Rsoc > 40)
|
|||
|
{
|
|||
|
return 3;
|
|||
|
}
|
|||
|
else if(Rsoc > 20)
|
|||
|
{
|
|||
|
return 2;
|
|||
|
}
|
|||
|
else if(Rsoc > 0)
|
|||
|
{
|
|||
|
return 1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: LedAutoOff
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾLED<EFBFBD><EFBFBD><EFBFBD><EFBFBD>5S<EFBFBD>ر<EFBFBD>LED<EFBFBD><EFBFBD>ʾ
|
|||
|
*************************************************************************************************/
|
|||
|
void LedAutoOff(void)
|
|||
|
{
|
|||
|
if(bLedDisFlg)
|
|||
|
{
|
|||
|
if(++ucLedTimeCnt >= 100) //100*50mS
|
|||
|
{
|
|||
|
ucLedTimeCnt = 0;
|
|||
|
bLedDisFlg = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: LedDisplay
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʾLED
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LEDָʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>500mS<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>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>LED<EFBFBD><EFBFBD><EFBFBD><EFBFBD>5s<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>Ϩ<EFBFBD><EFBFBD>
|
|||
|
*************************************************************************************************/
|
|||
|
void LedDisplay(void)
|
|||
|
{
|
|||
|
U8 LedDisNum;
|
|||
|
|
|||
|
if(bCHGING) //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>״̬
|
|||
|
{
|
|||
|
if(++ucLedChgFlickCnt >= 10) //10*50mS
|
|||
|
{
|
|||
|
ucLedChgFlickCnt = 0;
|
|||
|
IO_LED_CHARGE ^= 1;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
IO_LED_CHARGE = 0;
|
|||
|
}
|
|||
|
|
|||
|
if(bLedDisBleFlg) //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
{
|
|||
|
if(++ucLedBleFlickCnt >= 5) //5*50mS
|
|||
|
{
|
|||
|
ucLedBleFlickCnt = 0;
|
|||
|
// IO_LED_BLE ^= 1;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// IO_LED_BLE = 0;
|
|||
|
}
|
|||
|
|
|||
|
if(bLedDisFlg) //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
{
|
|||
|
LedDisNum = LedGetDisNum(Info.uiRSOC);
|
|||
|
if(LedDisNum == 0)
|
|||
|
{
|
|||
|
// LEDAllOff();
|
|||
|
}
|
|||
|
if(LedDisNum == 1)
|
|||
|
{
|
|||
|
// LED1On();
|
|||
|
}
|
|||
|
else if(LedDisNum == 2)
|
|||
|
{
|
|||
|
// LED1On();
|
|||
|
LED2On();
|
|||
|
}
|
|||
|
else if(LedDisNum == 3)
|
|||
|
{
|
|||
|
// LED1On();
|
|||
|
LED2On();
|
|||
|
LED3On();
|
|||
|
}
|
|||
|
else if(LedDisNum == 4)
|
|||
|
{
|
|||
|
// LED1On();
|
|||
|
LED2On();
|
|||
|
LED3On();
|
|||
|
LED4On();
|
|||
|
}
|
|||
|
else if(LedDisNum == 5)
|
|||
|
{
|
|||
|
// LEDAllOn();
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// LEDAllOff();
|
|||
|
}
|
|||
|
|
|||
|
LedAutoOff(); //<2F><>ʱ5s<35>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>LED<45><44>ʾ
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|