Explorar o código

增加前灯模式配置。

Dail hai 1 ano
pai
achega
6751f9ea4e
Modificáronse 7 ficheiros con 35 adicións e 12 borrados
  1. 1 2
      User/Inc/light_driver.h
  2. 12 3
      User/Inc/var.h
  3. 2 0
      User/Src/eeprom_24c02.c
  4. 15 4
      User/Src/light_driver.c
  5. 3 1
      User/Src/tasks.c
  6. 1 1
      User/Src/tim.c
  7. 1 1
      User/Src/var.c

+ 1 - 2
User/Inc/light_driver.h

@@ -13,6 +13,5 @@ typedef struct
 extern MC_LightDriver_IO_Struct_t HeadLightIO_Groups[3], TailLightIO_Groups[3]; 
 
 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);
 #endif

+ 12 - 3
User/Inc/var.h

@@ -167,13 +167,20 @@ typedef enum MC_SPEED_SIGNAL
 	MC_SPEED_COMMUNICATION = (uint8_t)0xEE //根据通信数据,车轮旋转1圈的时间
 }MC_SpeedSignal_Struct_t;
 
+typedef enum MC_FRONT_LIGHT_MODE
+{
+	MC_FRONT_LIGHT_MODE1 = (uint8_t)0x10,  //模式1,常亮
+	MC_FRONT_LIGHT_MODE2 = (uint8_t)0x20,  //模式2,仪表控制开关
+	MC_FRONT_LIGHT_MODE3 = (uint8_t)0x30,  //模式3,闪烁(功能预留)
+}MC_FrontLight_Mode_Struct_t;
+
 typedef enum MC_TAIL_LIGHT_MODE
 {
   MC_TAIL_LIGHT_MODE1 = (uint8_t)0x01,  //模式1,连接尾灯,开灯时低亮,刹车时高亮
 	MC_TAIL_LIGHT_MODE2 = (uint8_t)0x02,  //模式2,连接尾灯,开灯时高亮,刹车时闪烁
 	MC_TAIL_LIGHT_MODE3 = (uint8_t)0x03,  //模式3,连接刹车灯,刹车时高亮
 	MC_TAIL_LIGHT_MODE4 = (uint8_t)0x04,  //模式4,连接刹车灯,刹车时闪烁
-	MC_TAIL_LIGHT_MODE5 = (uint8_t)0x05,  //模式5,连接刹车灯常亮
+	MC_TAIL_LIGHT_MODE5 = (uint8_t)0x05,  //模式5,常亮
 	MC_TAIL_LIGHT_MODE6 = (uint8_t)0x06   //模式6,超速报警
 }MC_TailLight_Mode_Struct_t;
 
@@ -232,7 +239,7 @@ typedef struct
   int16_t ZeroAngle_Pitch;         //俯仰角零度偏移,地址偏移0
 	int16_t ZeroAngle_Roll;          //横滚角零度偏移,地址偏移2
 	MC_SupportFlag_Struct_t UseAttitudeAngle_Flag; //支持姿态角度传感器标志,地址偏移4
-	MC_TailLight_Mode_Struct_t MC_TailLight_Mode;  //尾灯功能,地址偏移5
+	uint8_t MC_Light_Mode;                         //前后灯功能,地址偏移5
 	MC_LightVoltage_Struct_t HeadLightVol;         //前灯电压
 	MC_LightVoltage_Struct_t TailLightVol;         //后灯电压
 	uint16_t u16OverspeedWarnVal;									 //超速告警值
@@ -356,7 +363,9 @@ typedef struct
 	uint32_t Trip_Km;
 	uint32_t Trip_Time;
 	uint32_t Run_Time;
-	uint32_t RS[5];
+	uint32_t Log_ODO_Km;
+	uint32_t Log_ODO_Time;
+	uint32_t RS[3];
 }MC_PowerOffBkp_Struct_t;
 
 //电池运行状态,占用空间1bytes

+ 2 - 0
User/Src/eeprom_24c02.c

@@ -438,6 +438,8 @@ int8_t SavePowerOffBakData(I2C_Handle_Struct_t* I2C_Handle, TrueOrFalse_Flag_Str
 		MC_RideLog.ODO_Time = MC_PowerOffBkp.ODO_Time;
 		MC_RideLog.TRIP_Km = MC_PowerOffBkp.Trip_Km;
 		MC_RideLog.TRIP_Time = MC_PowerOffBkp.Trip_Time;
+		MC_RunLog1.ODO_Km = MC_PowerOffBkp.Log_ODO_Km;
+		MC_RunLog1.ODO_Time = MC_PowerOffBkp.Log_ODO_Time;
 		if(SaveParamToEEprom_24C02(I2C_Handle, EEPROM_24C02_ADDR_RIDE_LOG, sizeof(MC_RideLog_Struct_t), (uint8_t*)&MC_RideLog.ODO_Km) == ACK_FAIL)
 		{
 			SaveParamToEEprom_24C02(I2C_Handle, EEPROM_24C02_ADDR_RIDE_LOG, sizeof(MC_RideLog_Struct_t), (uint8_t*)&MC_RideLog.ODO_Km);

+ 15 - 4
User/Src/light_driver.c

@@ -122,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://连接尾灯,开灯时低亮,刹车时高亮
 		{

+ 3 - 1
User/Src/tasks.c

@@ -634,7 +634,7 @@ void PowerOff_Process(TrueOrFalse_Flag_Struct_t ReturnEnable)
 	MC_ControlCode.GearSt = MC_GearSt_OFF;
 	MC_ControlCode.LightSwitch = MC_LightSwitch_OFF;
 	Update_MC_ControlCode_Back();
-	LightDriver_Process(MC_ConfigParam2.MC_TailLight_Mode, MC_ConfigParam2.HeadLightVol, MC_ConfigParam2.TailLightVol, IsBreakTrig_Flag, MC_ControlCode.LightSwitch);
+	LightDriver_Process(MC_ConfigParam2.MC_Light_Mode, MC_ConfigParam2.HeadLightVol, MC_ConfigParam2.TailLightVol, IsBreakTrig_Flag, MC_ControlCode.LightSwitch);
 
 	
 	#if 1 //存储到Flash,下次开机时从Flash取出转移到EEPROM
@@ -645,6 +645,8 @@ void PowerOff_Process(TrueOrFalse_Flag_Struct_t ReturnEnable)
 		MC_PowerOffBkp.Trip_Km = MC_RideLog.TRIP_Km;
 		MC_PowerOffBkp.Trip_Time = MC_RideLog.TRIP_Time;
 		MC_PowerOffBkp.Run_Time = MC_RunLog1.RunTime;
+		MC_PowerOffBkp.Log_ODO_Km = MC_RunLog1.ODO_Km;
+		MC_PowerOffBkp.Log_ODO_Time = MC_RunLog1.ODO_Time;
 		SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP, (uint8_t*)&MC_PowerOffBkp.ODO_Km, 40);//写入掉电临时保存数据,写入前该区域需擦除为0xFF才能操作成功
 		SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP_FLAG, (uint8_t*)"FLAG", 4); //掉电存储的数据标志更新
 		SaveFlag = SET;

+ 1 - 1
User/Src/tim.c

@@ -384,7 +384,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
 	#endif
 	
 	//Light¿ØÖÆ
-	LightDriver_Process(MC_ConfigParam2.MC_TailLight_Mode, MC_ConfigParam2.HeadLightVol, MC_ConfigParam2.TailLightVol, IsBreakTrig_Flag, MC_ControlCode.LightSwitch);
+	LightDriver_Process(MC_ConfigParam2.MC_Light_Mode, MC_ConfigParam2.HeadLightVol, MC_ConfigParam2.TailLightVol, IsBreakTrig_Flag, MC_ControlCode.LightSwitch);
 	
 	//ADC²É¼¯·ÖƵ
 	ADC_PreCnt++;

+ 1 - 1
User/Src/var.c

@@ -212,7 +212,7 @@ const MC_ConfigParam2_Struct_t MC_ConfigParam2_Default =
   (int16_t)0,                                      //俯仰角零偏
 	(int16_t)0,                                      //横滚角零偏
 	(MC_SupportFlag_Struct_t)MC_SUPPORT_DISABLE,     //0x55-不支持,0x-AA支持
-	(MC_TailLight_Mode_Struct_t)MC_TAIL_LIGHT_MODE2, //尾灯模式
+	(uint8_t)0x02,                                   //前后灯模式
 	(MC_LightVoltage_Struct_t)12,                                     //前灯电压
 	(MC_LightVoltage_Struct_t)12,                                     //后灯电压
 	(uint16_t)150,                                   //超速报警