Pārlūkot izejas kodu

针对金科一德样车修改限速,取消ODO里程清除。

Dail 1 gadu atpakaļ
vecāks
revīzija
b526db68bf

+ 4 - 0
Core/Src/main.c

@@ -212,6 +212,10 @@ int main(void)
 	//³õʼ»¯Íê³É±êÖ¾
 	IsInitFinish_Flag = TRUE;
 	 
+	MC_ConfigParam1.GasCtrlMode_Param = 0xA9;
+  MC_GasMode_Param.Mode = 0xA9;	
+	MC_MotorParam.Rate_Power |= 0xF800;
+	
   /* USER CODE END 2 */
 
   /* Infinite loop */

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2485 - 2485
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 2 - 0
User/Src/can_process.c

@@ -453,6 +453,7 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 					{
 					  MC_RideLog.TRIP_Km = 0;
 						MC_RideLog.TRIP_Time = 0;
+						#if 0 //不清除ODO
 						if(strncmp("CLEAR_ODO", (char*)UserString1, 9) != 0)//利用UserString1作为是否允许清除ODO的标志
 						{
 						  if(MC_RideLog.ODO_Km < 1000) //前100km允许清除
@@ -463,6 +464,7 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 							strncpy((char*)UserString1, (char*)"CLEAR_ODO", 9);
 							IsFlashSaveDataUpdate = TRUE;
 						}
+						#endif
 						SaveParamToEEprom_24C02(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_RIDE_LOG, sizeof(MC_RideLog_Struct_t), (uint8_t*)&MC_RideLog.ODO_Km);
 						SendData(ID_MC_TO_HMI, MODE_REPORT, 0x7403, (uint8_t*)"ACK");
 						MC_RunInfo.Ride_Km = 0;

+ 23 - 1
User/Src/motor_control.c

@@ -645,6 +645,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
 	if((MC_ConfigParam2.SpeedLimitStartAdj > 50) || (MC_ConfigParam2.SpeedLimitStartAdj < -50)) MC_ConfigParam2.SpeedLimitStartAdj=0;
 	if((MC_ConfigParam2.SpeedLimitEndAdj > 50) || (MC_ConfigParam2.SpeedLimitEndAdj < -50)) MC_ConfigParam2.SpeedLimitEndAdj=0;
 	
+	#if 0
   if(MC_GasMode_Param.Mode_bit.SpeedLimit <= 5)
 	{
 	  speedLimitStart = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj + GasMode_Param.Mode_bit.SpeedLimit + 0x1F - (0xAA >> 3) - 2) * 10 + MC_ConfigParam2.SpeedLimitStartAdj) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
@@ -657,6 +658,11 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
 	  speedLimitEnd = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj + GasMode_Param.Mode_bit.SpeedLimit - (0xAA >> 3)) * 10 + MC_ConfigParam2.SpeedLimitEndAdj + 22) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
 	  slewRate = 1024 / (speedLimitEnd - speedLimitStart - 3);		
 	}	
+	#else //客户测试,限速32km/h
+	speedLimitStart = 310;
+	speedLimitEnd = 345;
+	slewRate = 29;	
+	#endif
 	
 	//随车速调节助力比
 	if(MC_GasMode_Param.Mode_bit.StartMode == 0) //零速启动
@@ -781,7 +787,11 @@ MC_CalParam_Struct_t MC_AssistRunMode_Walk_Process(MC_WorkMode_Struct_t p_MC_Wor
 		uint8_t WalkMode_MotorSpeedSet = 0;
 		
 		//新增配置项,兼容旧电机
+		#if 0
 		WalkMode_MotorSpeedSet = (MC_ConfigParam1.WalkMode_MotorSpeedSet == 0) ? 135 : MC_ConfigParam1.WalkMode_MotorSpeedSet;
+		#else //客户需求推行2.6mph
+		WalkMode_MotorSpeedSet = 105;
+		#endif
 		
 		if(MC_WalkProcess_Param.MotorSpeedSetBigin < (WalkMode_MotorSpeedSet << 5) - 10)
 		{
@@ -1228,9 +1238,21 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
 		if((MC_ConfigParam2.SpeedLimitStartAdj > 50) || (MC_ConfigParam2.SpeedLimitStartAdj < -50)) MC_ConfigParam2.SpeedLimitStartAdj = 0;
 		if((MC_ConfigParam2.SpeedLimitEndAdj > 50) || (MC_ConfigParam2.SpeedLimitEndAdj < -50)) MC_ConfigParam2.SpeedLimitEndAdj = 0;
 		
+		#if 1 //客户测试,加大限速区间
+		MC_ConfigParam2.SpeedLimitStartAdj = -10;
+	  MC_ConfigParam2.SpeedLimitEndAdj = 20;
+		#endif
+		
+		#if 0		
 		speedLimitStart = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj) * 10 + MC_ConfigParam2.SpeedLimitStartAdj) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
 		speedLimitEnd   = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj) * 10 + MC_ConfigParam2.SpeedLimitEndAdj + 22) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
-		slewRate        = 1024 / (speedLimitEnd - speedLimitStart - 3);		
+		slewRate        = 1024 / (speedLimitEnd - speedLimitStart - 3);				
+		#else //客户测试,限速45km/h
+		speedLimitStart = 450;
+		speedLimitEnd = 475;
+		slewRate = 40;	
+		#endif
+		
 		//随车速调节助力比
 		Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(speedLimitStart, 0, speedLimitStart, slewRate, MC_SpeedSensorData.Speed_Data)) >> 10);
 			

+ 2 - 2
User/Src/tim.c

@@ -384,8 +384,8 @@ 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_TailLight_Mode, MC_ConfigParam2.HeadLightVol, MC_ConfigParam2.TailLightVol, IsBreakTrig_Flag, MC_ControlCode.LightSwitch);
+	LightDriver_Process(MC_ConfigParam2.MC_TailLight_Mode, MC_LIGHT_VOL_12V, MC_LIGHT_VOL_12V, IsBreakTrig_Flag, MC_ControlCode.LightSwitch);
 	//ADC²É¼¯·ÖƵ
 	ADC_PreCnt++;
 	if(ADC_PreCnt >= 5)

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels