ZDBMS/code_app/Led.c

156 lines
3.0 KiB
C
Raw 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"
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>ʾ
}