Преглед на файлове

V2.1.6_20210318 TC011052-MCK201001-V1r1
1、修改转把模式的启动方式,取消车速超过3km/h的条件,更改为启动转把前需要捏刹车并松开,10s内未操作转把,需要重复刹车动作才能启动转把模式;
2、版本号:V2.1.6_20210318 客户特性说明:TC011052-MCK201001-V1r0

dail.zhou преди 4 години
родител
ревизия
5317e6079e

+ 8 - 0
Core/Src/main.c

@@ -206,6 +206,14 @@ int main(void)
 	//初始化完成标志
 	IsInitFinish_Flag = TRUE;
 
+	//根据客户定制需求修改配置参数
+	MC_ConfigParam1.GasCtrlMode_Flag = MC_SUPPORT_ENABLE;//打开转把模式
+	MC_ConfigParam1.CadenceStarNum = 10;      	      	 //曲柄60度启动
+	MC_ConfigParam1.UV_Protect_TH = 3000;     		       //30V欠压
+	MC_ConfigParam1.SpeedLimit = 24;      		           //限速24km/h,要求超过24km/h断电
+	MC_ConfigParam1.WalkMode_SpeedLimit = 40; 		       //推行限速4.0km/h
+	MC_ConfigParam1.WalkMode_MotorSpeedSet = 135;	       //推行电机转速
+	
   /* USER CODE END 2 */
 
   /* Infinite loop */

BIN
MDK-ARM/bin/MC_VS7500-TC011052-MCK201001-V2.1.6.1.1_20210318.bin


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 14 - 3
User/Inc/gas_sensor.h

@@ -5,20 +5,31 @@
 #include "var.h"
 #include "motor_control.h"
 
+//定速巡航判断
 typedef struct
 {
   uint16_t Old_Data;
-	uint32_t DelayTimeCnt;
-	FlagStatus CruiceFlag;
+	uint32_t DelayTimeCnt;                      //延时判断
+	FlagStatus CruiceFlag;                      //进入定速巡航标志,SET-已进入,RESET-退出
 	int16_t CruiceSetData;
-	TrueOrFalse_Flag_Struct_t IsGasReleaseFlag;
+	TrueOrFalse_Flag_Struct_t IsGasReleaseFlag; //转把松开标志
 }GasSensorCruiceCheckParam_Struct_t;
 
+//转把模式启动判断
+typedef struct
+{
+  FlagStatus StartFlag;                           //启动标志,SET-允许启动,RESET-禁止启动
+	TrueOrFalse_Flag_Struct_t IsBreakFlag;          //刹车标志
+	uint32_t DelayTimeCnt;                          //超时判断
+}GasModeStartCheckParam_Struct_t;
+
 extern uint16_t GasSensor_OffSet;
 extern TrueOrFalse_Flag_Struct_t IsGasSensorConnectedFlag;
 extern GasSensorCruiceCheckParam_Struct_t GasSensorCruiceCheckParam;
+extern GasModeStartCheckParam_Struct_t GasModeStartCheckParam;
 
 extern void GasSensorOffSet_Init(uint16_t* OffSet, uint16_t AdcData);
 extern void GasSensorOffSetData_Update(uint16_t* PresentData, uint16_t AdcData, MC_ErrorCode_Struct_t* p_MC_ErrorCode);
 extern void GasSensorCruiceCheck(uint16_t GasSensorData, uint16_t BikeSpeed, TrueOrFalse_Flag_Struct_t IsBreakFlag, MC_GearSt_Struct_t GearSt, GasSensorCruiceCheckParam_Struct_t* p_GasSensorCruiceCheckParam);
+extern void GasModeStartCheck(TrueOrFalse_Flag_Struct_t IsBreakFlag, uint16_t GasSensorData, MC_GearSt_Struct_t GearSt, GasModeStartCheckParam_Struct_t* p_GasModeStartCheckParam);
 #endif

+ 40 - 0
User/Src/gas_sensor.c

@@ -5,6 +5,7 @@
 uint16_t GasSensor_OffSet = 0;
 GasSensorCruiceCheckParam_Struct_t GasSensorCruiceCheckParam = {0, 0, RESET, 0, FALSE};
 TrueOrFalse_Flag_Struct_t IsGasSensorConnectedFlag = FALSE;
+GasModeStartCheckParam_Struct_t GasModeStartCheckParam = {RESET, FALSE, 0};
 
 #define ZeroOffSetData 100
 
@@ -132,3 +133,42 @@ void GasSensorCruiceCheck(uint16_t GasSensorData, uint16_t BikeSpeed, TrueOrFals
 		}
 	}
 }
+
+//转把模式启动判断
+void GasModeStartCheck(TrueOrFalse_Flag_Struct_t IsBreakFlag, uint16_t GasSensorData, MC_GearSt_Struct_t GearSt, GasModeStartCheckParam_Struct_t* p_GasModeStartCheckParam)
+{
+  //OFF档位,禁止转把模式
+	if(GearSt == MC_GearSt_OFF)
+	{
+	  p_GasModeStartCheckParam->StartFlag = RESET;
+		return;
+	}
+
+	//捏刹车,松开后允许转把模式
+	if(p_GasModeStartCheckParam->StartFlag == RESET)
+	{
+	  if(IsBreakFlag != p_GasModeStartCheckParam->IsBreakFlag)
+		{
+		  if(IsBreakFlag == FALSE)
+			{
+				p_GasModeStartCheckParam->StartFlag = SET;
+	  		p_GasModeStartCheckParam->DelayTimeCnt = HAL_GetTick();
+			}
+		}
+		p_GasModeStartCheckParam->IsBreakFlag = IsBreakFlag;
+		return;
+	}
+	
+	//超时判断,10s内未捏转把启动,禁止转把模式
+	else
+	{
+	  if(GasSensorData > 30)
+		{
+		  p_GasModeStartCheckParam->DelayTimeCnt = HAL_GetTick();
+		}
+		if((HAL_GetTick() - p_GasModeStartCheckParam->DelayTimeCnt) > 10000)
+		{
+		  p_GasModeStartCheckParam->StartFlag = RESET;
+		}
+	}
+}

+ 1 - 1
User/Src/motor_control.c

@@ -397,7 +397,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 	#endif
 
   //根据指拨控制
-	if((GasCtrlMode == MC_SUPPORT_ENABLE) && (MC_RunInfo.BikeSpeed > 30) && ((AdcSenorData.GasSensor > 30) || (GasSensorCruiceCheckParam.CruiceFlag == SET)))
+	if((GasCtrlMode == MC_SUPPORT_ENABLE) && (GasModeStartCheckParam.StartFlag == SET) && ((AdcSenorData.GasSensor > 30) || (GasSensorCruiceCheckParam.CruiceFlag == SET)))
 	{
 	  MC_TorqueProcess_Param.MotorStopLock_Flag = RESET;
 		if(GasSensorCruiceCheckParam.CruiceFlag == RESET)//未进入定速巡航

+ 2 - 0
User/Src/tasks.c

@@ -107,6 +107,8 @@ void HAL_SYSTICK_Callback(void)
 		{
 			GasSensorCruiceCheck(ADC_SensorData.GasSensor, MC_RunInfo.BikeSpeed, IsBreakTrig_Flag, MC_ControlCode.GearSt, &GasSensorCruiceCheckParam);
 		}
+		//ת°ŃÄŁĘ˝ĆôśŻźě˛â
+		GasModeStartCheck(IsBreakTrig_Flag, ADC_SensorData.GasSensor, MC_ControlCode.GearSt, &GasModeStartCheckParam);
 	}
 	
 	//1000msČÎÎń

+ 2 - 2
User/Src/var.c

@@ -489,8 +489,8 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
   strncpy(MC_VerInfo.HW_Version, (char*)"QD007H.         ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20210301.", 16);
-	strncpy(Firmware_Special, (char*)"TC011052-MCK201001-V1r0.        ", 32);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20210318.", 16);
+	strncpy(Firmware_Special, (char*)"TC011052-MCK201001-V1r1.        ", 32);
 		
 	//电机型号
 	strncpy(MC_VerInfo.Mode, (char*)"VS7500.         ", 16);

+ 3 - 1
修改说明.txt

@@ -383,7 +383,9 @@ V2.1.6_20210301 TC011052-MCK201001-V1r0
 1、关闭指拨零点更新
 2、版本号:V2.1.6_20210301_1 客户特性说明:TC011052-MCK201001-V1r0
 
-
+V2.1.6_20210318 TC011052-MCK201001-V1r1
+1、修改转把模式的启动方式,取消车速超过3km/h的条件,更改为启动转把前需要捏刹车并松开,10s内未操作转把,需要重复刹车动作才能启动转把模式;
+2、版本号:V2.1.6_20210318 客户特性说明:TC011052-MCK201001-V1r0