124 lines
2.8 KiB
C
124 lines
2.8 KiB
C
|
/*****************************************************************
|
|||
|
;Project: Light
|
|||
|
;MCU:
|
|||
|
;Date:
|
|||
|
;File:
|
|||
|
;Function:
|
|||
|
******************************************************************/
|
|||
|
#include "shockLed_task.h"
|
|||
|
#include "ws2812.h"
|
|||
|
#include "tick.h"
|
|||
|
#include "adc.h"
|
|||
|
#include "config.h"
|
|||
|
#include "detect_task.h"
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
extern AD_Value_t AD_Value;
|
|||
|
extern TaskFlagUnion_t tTaskFlag;
|
|||
|
extern unsigned char VoltageStableFlag; //<2F><><EFBFBD>ص<EFBFBD>ѹ<EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>־
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void shockLed_Task(void)
|
|||
|
{
|
|||
|
static unsigned char shock_state=0;
|
|||
|
static unsigned short time=0;
|
|||
|
static unsigned char powerLedNum = 0;
|
|||
|
unsigned int powerColor=0;
|
|||
|
|
|||
|
if((tTaskFlag.tFlag.shockFlag == 1)&&(VoltageStableFlag == 1))
|
|||
|
{
|
|||
|
if(Get_TaskInitFlag() == 1)
|
|||
|
{
|
|||
|
shock_state = 0;
|
|||
|
WS_CloseAll();
|
|||
|
Set_TaskInitFlag(0);
|
|||
|
}
|
|||
|
|
|||
|
switch(shock_state)
|
|||
|
{
|
|||
|
case 0:
|
|||
|
if(AD_Value.PowerScale <= 30) //<2F><><EFBFBD><EFBFBD>С<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>30%<25><>ʾ<EFBFBD><CABE><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>̵<EFBFBD>
|
|||
|
powerColor=POWER_WARNCOLOR;
|
|||
|
else
|
|||
|
powerColor=POWER_SAFECOLOR;
|
|||
|
|
|||
|
//--<2D>õ<EFBFBD><C3B5><EFBFBD>10<31><30><EFBFBD>Ƶȱ<C6B5><C8B1><EFBFBD>ʾ<EFBFBD><CABE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>0~9->0,10~19->1,90~99->9,97~100->10
|
|||
|
if(AD_Value.PowerScale >= 100)
|
|||
|
powerLedNum = 10;
|
|||
|
else
|
|||
|
powerLedNum = AD_Value.PowerScale/10;
|
|||
|
|
|||
|
if(AD_Value.PowerScale <= 10)
|
|||
|
{
|
|||
|
powerLedNum = 1;
|
|||
|
}
|
|||
|
//--ledBuff<66><66><EFBFBD><EFBFBD>
|
|||
|
LedBuff_CleanAll();
|
|||
|
//--ָ<><D6B8>ledBuffд<66><D0B4>color<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
LedBuff_WriteNum(powerLedNum,powerColor);
|
|||
|
WS_Show();
|
|||
|
//--<2D><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
TimerSet(time,5000); //<2F><>5s
|
|||
|
shock_state = 1;
|
|||
|
break;
|
|||
|
case 1: //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>û<EFBFBD><C3BB>
|
|||
|
//--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<C7B7>
|
|||
|
if(TimerCheck(time,5000))
|
|||
|
{
|
|||
|
//--ָ<><D6B8>led<65><64><EFBFBD><EFBFBD>
|
|||
|
WS_CloseAll();
|
|||
|
shock_state = 0;
|
|||
|
tTaskFlag.tFlag.shockFlag = 0;
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
shock_state = 0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//LED<45><44>˸<EFBFBD><CBB8><EFBFBD><EFBFBD>
|
|||
|
unsigned char flash_state=0;
|
|||
|
|
|||
|
void FlashLed_Task(void)
|
|||
|
{
|
|||
|
static unsigned short time=0;
|
|||
|
|
|||
|
switch(flash_state)
|
|||
|
{
|
|||
|
case 0:
|
|||
|
LedBuff_WriteNum(10,0xff0000);
|
|||
|
WS_Show();
|
|||
|
TimerSet(time,200);
|
|||
|
flash_state = 1;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case 1:
|
|||
|
if(TimerCheck(time,200))
|
|||
|
{
|
|||
|
WS_CloseAll();
|
|||
|
TimerSet(time,200);
|
|||
|
flash_state = 2;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case 2:
|
|||
|
if(TimerCheck(time,200))
|
|||
|
{
|
|||
|
flash_state = 0;
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
default: flash_state = 0;
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|