|
@@ -33,25 +33,12 @@ void Light_DisplayOff(void)
|
|
|
强光或静置时,只在模式切换时亮三次
|
|
|
函数运行周期1ms
|
|
|
*/
|
|
|
-void Light_DisplayMode1(uint16_t LightSensor, uint8_t Smart)
|
|
|
+void Light_DisplayMode1(uint8_t LightEna, uint8_t Smart)
|
|
|
{
|
|
|
- uint8_t OffFlag = 0;
|
|
|
- //判断是否自动关灯
|
|
|
- if(Smart == 0) //非智能模式
|
|
|
- {
|
|
|
- OffFlag = 0;
|
|
|
- }
|
|
|
- else //智能模式,根据光感强度确定是否自动关闭
|
|
|
- {
|
|
|
- if(LightSensor < LIGHT_LEVEL_LOW)
|
|
|
- OffFlag = 0;
|
|
|
- else if(LightSensor > LIGHT_LEVEL_HIGH)
|
|
|
- OffFlag = 1;
|
|
|
- }
|
|
|
- //自动关闭时在模式切换时亮三次
|
|
|
- if((OffFlag == 1)&&(Light_Mode_Count >= 3))
|
|
|
+ if((Smart == 1) && (LightEna == 0) && (Light_Mode_Count >= 10)) //智能模式,强光,3s后关闭
|
|
|
{
|
|
|
Light_SetBrightless(0);
|
|
|
+ Light_Mode_PeriodCnt = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -76,42 +63,25 @@ void Light_DisplayMode1(uint16_t LightSensor, uint8_t Smart)
|
|
|
模式2:呼吸,800ms加到最亮,周期1s,智能模式,白天熄灯,晚上亮灯,30s自动关闭
|
|
|
函数运行周期1ms
|
|
|
*/
|
|
|
-void Light_DisplayMode2(uint16_t LightSensor, uint8_t Smart)
|
|
|
+void Light_DisplayMode2(uint8_t LightEna, uint8_t Smart)
|
|
|
{
|
|
|
- uint8_t OffFlag = 0;
|
|
|
uint16_t LevelPluse = 0;
|
|
|
-
|
|
|
- //设定亮度
|
|
|
- if(BrightlessLevel == 1) LevelPluse = 25;
|
|
|
- else if(BrightlessLevel == 2) LevelPluse = 50;
|
|
|
- else if(BrightlessLevel == 3) LevelPluse = 100;
|
|
|
- //判断是否自动关灯
|
|
|
- if(Smart == 0) //非智能模式
|
|
|
- {
|
|
|
- OffFlag = 0;
|
|
|
- }
|
|
|
- else //智能模式,根据光感强度确定是否自动关闭
|
|
|
- {
|
|
|
- if(LightSensor < LIGHT_LEVEL_LOW)
|
|
|
- OffFlag = 0;
|
|
|
- else if(LightSensor > LIGHT_LEVEL_HIGH)
|
|
|
- OffFlag = 1;
|
|
|
- }
|
|
|
- //自动关闭时在模式切换时亮三次
|
|
|
- if((OffFlag == 1) && (Light_Mode_Count >= 2))
|
|
|
+
|
|
|
+ if((Smart == 1) && (LightEna == 0) && (Light_Mode_Count >= 3)) //智能模式,强光,3s后关闭
|
|
|
{
|
|
|
Light_SetBrightless(0);
|
|
|
+ Light_Mode_PeriodCnt = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Light_Mode_PeriodCnt++;
|
|
|
if(Light_Mode_PeriodCnt <= 750)
|
|
|
{
|
|
|
- Light_SetBrightless((uint32_t)Light_Mode_PeriodCnt * LevelPluse / 750 + 10);
|
|
|
+ Light_SetBrightless((uint32_t)Light_Mode_PeriodCnt * BrightlessLevelPulse[BrightlessLevel - 1] / 750 + 10);
|
|
|
}
|
|
|
else if(Light_Mode_PeriodCnt <= 1500)
|
|
|
{
|
|
|
- Light_SetBrightless((uint32_t)(1500 - Light_Mode_PeriodCnt) * LevelPluse / 1500 + 10);
|
|
|
+ Light_SetBrightless((uint32_t)(1500 - Light_Mode_PeriodCnt) * BrightlessLevelPulse[BrightlessLevel - 1] / 750 + 10);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -125,25 +95,12 @@ void Light_DisplayMode2(uint16_t LightSensor, uint8_t Smart)
|
|
|
模式3:爆闪,50ms亮,950ms灭,非智能
|
|
|
函数运行周期1ms
|
|
|
*/
|
|
|
-void Light_DisplayMode3(uint16_t LightSensor, uint8_t Smart)
|
|
|
+void Light_DisplayMode3(uint8_t LightEna, uint8_t Smart)
|
|
|
{
|
|
|
- uint8_t OffFlag = 0;
|
|
|
- //判断是否自动关灯
|
|
|
- if(Smart == 0) //非智能模式
|
|
|
- {
|
|
|
- OffFlag = 0;
|
|
|
- }
|
|
|
- else //智能模式,根据光感强度确定是否自动关闭
|
|
|
- {
|
|
|
- if(LightSensor < LIGHT_LEVEL_LOW)
|
|
|
- OffFlag = 0;
|
|
|
- else if(LightSensor > LIGHT_LEVEL_HIGH)
|
|
|
- OffFlag = 1;
|
|
|
- }
|
|
|
- //自动关闭时在模式切换时亮三次
|
|
|
- if((OffFlag == 1)&&(Light_Mode_Count >= 3))
|
|
|
+ if((Smart == 1) && (LightEna == 0) && (Light_Mode_Count >= 6)) //智能模式,强光,3s后关闭
|
|
|
{
|
|
|
Light_SetBrightless(0);
|
|
|
+ Light_Mode_PeriodCnt = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -176,25 +133,12 @@ void Light_DisplayMode3(uint16_t LightSensor, uint8_t Smart)
|
|
|
模式4:常亮
|
|
|
函数运行周期1ms
|
|
|
*/
|
|
|
-void Light_DisplayMode4(uint16_t LightSensor, uint8_t Smart)
|
|
|
+void Light_DisplayMode4(uint8_t LightEna, uint8_t Smart)
|
|
|
{
|
|
|
- uint8_t OffFlag = 0;
|
|
|
- //判断是否自动关灯
|
|
|
- if(Smart == 0) //非智能模式
|
|
|
- {
|
|
|
- OffFlag = 0;
|
|
|
- }
|
|
|
- else //智能模式,根据光感强度确定是否自动关闭
|
|
|
- {
|
|
|
- if(LightSensor < LIGHT_LEVEL_LOW)
|
|
|
- OffFlag = 0;
|
|
|
- else if(LightSensor > LIGHT_LEVEL_HIGH)
|
|
|
- OffFlag = 1;
|
|
|
- }
|
|
|
- //自动关闭时在模式切换时亮三次
|
|
|
- if((OffFlag == 1)&&(Light_Mode_Count >= 3))
|
|
|
+ if((Smart == 1) && (LightEna == 0) && (Light_Mode_Count >= 3)) //智能模式,强光,3s后关闭
|
|
|
{
|
|
|
Light_SetBrightless(0);
|
|
|
+ Light_Mode_PeriodCnt = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -234,13 +178,13 @@ void Light_DisplayBreak(uint8_t* Break)
|
|
|
void LedChg_SetColor(uint8_t Red, uint8_t Green, uint8_t Blue)
|
|
|
{
|
|
|
//R
|
|
|
- TIM2_SetCompare1(((uint32_t)500 * Red) >> 8);
|
|
|
+ TIM2_SetCompare1(((uint32_t)800 * Red) >> 8);
|
|
|
|
|
|
//G
|
|
|
- TIM2_SetCompare2(((uint32_t)500 * Green) >> 8);
|
|
|
+ TIM2_SetCompare2(((uint32_t)800 * Green) >> 8);
|
|
|
|
|
|
//B
|
|
|
- TIM2_SetCompare3(((uint32_t)500 * Blue) >> 8);
|
|
|
+ TIM2_SetCompare3(((uint32_t)800 * Blue) >> 8);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -316,7 +260,7 @@ void Led_BatSoc_Display(uint8_t ChgMode, uint8_t Smart, uint8_t SOC)
|
|
|
if(LedSoc_PeriodCnt <= OnCnt1)
|
|
|
{
|
|
|
if(SOC <= 10) LedChg_SetColor(0xFA, 0, 0);
|
|
|
- else if(SOC <= 40) LedChg_SetColor(0xFA, 0xA0, 0);
|
|
|
+ else if(SOC <= 50) LedChg_SetColor(0xFA, 0xA0, 0);
|
|
|
else if(SOC <= 80) LedChg_SetColor(0, 0xFA, 0xFA);
|
|
|
else LedChg_SetColor(0, 0xFA, 0);
|
|
|
}
|
|
@@ -327,7 +271,7 @@ void Led_BatSoc_Display(uint8_t ChgMode, uint8_t Smart, uint8_t SOC)
|
|
|
else if(LedSoc_PeriodCnt <= OnCnt2)
|
|
|
{
|
|
|
if(SOC <= 10) LedChg_SetColor(0xFA, 0, 0);
|
|
|
- else if(SOC <= 40) LedChg_SetColor(0xFA, 0xA0, 0);
|
|
|
+ else if(SOC <= 50) LedChg_SetColor(0xFA, 0xA0, 0);
|
|
|
else if(SOC <= 80) LedChg_SetColor(0, 0xFA, 0xFA);
|
|
|
else LedChg_SetColor(0, 0xFA, 0);
|
|
|
}
|