Jelajahi Sumber

增加前灯模式配置。

Dail 1 tahun lalu
induk
melakukan
f68f22cd73

+ 1 - 1
MDK-ARM/QD007A_CTL_APP.uvprojx

@@ -362,7 +362,7 @@
             <useXO>0</useXO>
             <VariousControls>
               <MiscControls></MiscControls>
-              <Define>USE_HAL_DRIVER,STM32F103xB,PEGASI_48V,BARD_125K</Define>
+              <Define>USE_HAL_DRIVER,STM32F103xB,PEGASI_48V,BARD_250K</Define>
               <Undefine></Undefine>
               <IncludePath>../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;..\User\Inc;..\SEGGER_RTT\Inc;..\SelfTestUser\Inc</IncludePath>
             </VariousControls>

File diff ditekan karena terlalu besar
+ 1688 - 1688
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


TEMPAT SAMPAH
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 1 - 1
User/Inc/light_driver.h

@@ -13,6 +13,6 @@ 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

@@ -169,13 +169,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;
 
@@ -234,7 +241,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;          //前灯电压,地址偏移6
 	MC_LightVoltage_Struct_t TailLightVol;          //后灯电压,地址偏移7
 	uint16_t u16OverspeedWarnVal;										//超速告警值,地址偏移8
@@ -350,7 +357,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

@@ -449,6 +449,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);

+ 25 - 6
User/Src/light_driver.c

@@ -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;

+ 3 - 1
User/Src/tasks.c

@@ -632,7 +632,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
@@ -643,6 +643,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

@@ -240,7 +240,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,                                   //前后灯模式
 	(uint8_t)12,                                     //前灯电压
 	(uint8_t)12,                                     //后灯电压
 	(uint16_t)150,                                   //超速报警

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini