|
@@ -61,10 +61,18 @@ void LightDriver_Init(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void LightDriver_Process(MC_TailLight_Mode_Struct_t TailLight_Mode, MC_LightVoltage_Struct_t HeadLightVol, MC_LightVoltage_Struct_t TailLightVol, TrueOrFalse_Flag_Struct_t IsBreakFlag, MC_LightSwitch_Struct_t LightSwitchCode)
|
|
|
+void LightDriver_Process(uint8_t Light_Mode, MC_LightVoltage_Struct_t HeadLightVol, MC_LightVoltage_Struct_t TailLightVol, TrueOrFalse_Flag_Struct_t IsBreakFlag, MC_LightSwitch_Struct_t LightSwitchCode)
|
|
|
{
|
|
|
uint8_t HeadLightIO_Groups_ID, TailLightIO_Groups_ID;
|
|
|
|
|
|
+ //开机前2s不处理,关灯处理
|
|
|
+ if(HAL_GetTick() < 2000)
|
|
|
+ {
|
|
|
+ LightDriver_IO_Control(HeadLightIO_Groups, sizeof(HeadLightIO_Groups)/sizeof(MC_LightDriver_IO_Struct_t), HeadLightIO_Groups_ID, MC_LightSwitch_OFF);
|
|
|
+ LightDriver_IO_Control(TailLightIO_Groups, sizeof(TailLightIO_Groups)/sizeof(MC_LightDriver_IO_Struct_t), TailLightIO_Groups_ID, MC_LightSwitch_OFF);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
//根据配置选择对应的IO
|
|
|
switch(HeadLightVol)
|
|
|
{
|
|
@@ -114,13 +122,24 @@ void LightDriver_Process(MC_TailLight_Mode_Struct_t TailLight_Mode, MC_LightVolt
|
|
|
}
|
|
|
|
|
|
//控制前灯
|
|
|
- LightDriver_IO_Control(HeadLightIO_Groups, sizeof(HeadLightIO_Groups)/sizeof(MC_LightDriver_IO_Struct_t), HeadLightIO_Groups_ID, LightSwitchCode);
|
|
|
+ switch(Light_Mode & 0xF0)
|
|
|
+ {
|
|
|
+ case MC_FRONT_LIGHT_MODE1: //常亮
|
|
|
+ {
|
|
|
+ LightDriver_IO_Control(HeadLightIO_Groups, sizeof(HeadLightIO_Groups)/sizeof(MC_LightDriver_IO_Struct_t), HeadLightIO_Groups_ID, MC_LightSwitch_ON);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case MC_FRONT_LIGHT_MODE2: default: //仪表控制开关
|
|
|
+ {
|
|
|
+ LightDriver_IO_Control(HeadLightIO_Groups, sizeof(HeadLightIO_Groups)/sizeof(MC_LightDriver_IO_Struct_t), HeadLightIO_Groups_ID, LightSwitchCode);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
//控制尾灯
|
|
|
static uint16_t FlashTimeCnt = 0;
|
|
|
-// uint16_t OnTime = 8;
|
|
|
-// uint16_t Period = 15;
|
|
|
- switch(TailLight_Mode)
|
|
|
+ switch(Light_Mode & 0x0F)
|
|
|
{
|
|
|
case MC_TAIL_LIGHT_MODE1://连接尾灯,开灯时低亮,刹车时高亮
|
|
|
{
|
|
@@ -210,7 +229,7 @@ void LightDriver_Process(MC_TailLight_Mode_Struct_t TailLight_Mode, MC_LightVolt
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
- case MC_TAIL_LIGHT_MODE5://模式5,常亮
|
|
|
+ case MC_TAIL_LIGHT_MODE5://模式5,常亮
|
|
|
{
|
|
|
LightDriver_IO_Control(TailLightIO_Groups, sizeof(TailLightIO_Groups)/sizeof(MC_LightDriver_IO_Struct_t), TailLightIO_Groups_ID, MC_LightSwitch_ON);
|
|
|
break;
|