瀏覽代碼

增加速度计算根据Enviolo变速器时,采用变速器发送的轮速信号进行计算。

Dail 1 年之前
父節點
當前提交
1d44c5c577
共有 5 個文件被更改,包括 2456 次插入2445 次删除
  1. 2439 2439
      MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex
  2. 二進制
      MDK-ARM/bin/QD007A_CTL_APP.bin
  3. 12 1
      User/Src/enviolo_can.c
  4. 3 3
      User/Src/tasks.c
  5. 2 2
      User/Src/var.c

File diff suppressed because it is too large
+ 2439 - 2439
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


二進制
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 12 - 1
User/Src/enviolo_can.c

@@ -76,6 +76,17 @@ void GearBox_CanProcess(GearBox_CanData_Struct_t* CanData)
 			EnvioloGearInfo1.Bike_Speed = CanData->Data[2];
 			EnvioloGearInfo1.Battery_Vol = CanData->Data[3];
 			EnvioloGearInfo1.Wheel_Rpm = (uint16_t)(CanData->Data[4] << 8) + CanData->Data[5];
+			//更新轮速,仅配置为通过通信获取车轮周期时更新
+			if(MC_ConfigParam1.SpeedSignal == MC_SPEED_COMMUNICATION)
+			{
+				if(EnvioloGearInfo1.Wheel_Rpm == 0)
+					MC_SpeedSensorData.DiffTime_ms = 0xFFFF;
+				else
+				{
+				  MC_SpeedSensorData.DiffTime_ms = 60000 / EnvioloGearInfo1.Wheel_Rpm; //周期 = 60 / 转速(rpm) * 1000 (ms)
+				  MC_SpeedSensorData.IsTrigFlag = TRUE;	
+				}				
+			}
 			EnvioloGearInfo1.StatusFlag.Flag = CanData->Data[6];
 			EnvioloGearInfo1.ErrorFlag.Flag = CanData->Data[7];
 			//变速器校准成功标志1
@@ -91,7 +102,7 @@ void GearBox_CanProcess(GearBox_CanData_Struct_t* CanData)
 		}
 		else if(CanData->ID == ID_ENVIOLO_TO_MC_2)
 		{
-            memcpy((uint8_t*)&EnvioloGearInfo2.PCB_Version_Major, (uint8_t*)CanData->Data, 8);
+      memcpy((uint8_t*)&EnvioloGearInfo2.PCB_Version_Major, (uint8_t*)CanData->Data, 8);
 		}
 		CanData->RefreshFlag = FALSE;
 	}

+ 3 - 3
User/Src/tasks.c

@@ -182,11 +182,11 @@ void MC_RunInfo_Update(void)
 		if(MC_ConfigParam1.SpeedSignal == MC_SPEED_COMMUNICATION) //根据通信获取的车轮旋转周期计算
 		{
 		  static uint32_t WheelTurnCount_Temp = 0;
-			//运算周期是200ms,根据车轮旋转周期计算200ms内旋转的圈数,存在小数,放大100
+			//运算周期是200ms,根据车轮旋转周期计算200ms内旋转的圈数,存在小数,放4096
 			if(MC_SpeedSensorData.IsStopFlag == FALSE)
 			{
-				WheelTurnCount_Temp += 20000 / MC_SpeedSensorData.DiffTime_ms;
-				MC_SpeedSensorData.WheelTurnCount = WheelTurnCount_Temp / 100;			
+				WheelTurnCount_Temp += 819200 / MC_SpeedSensorData.DiffTime_ms;
+				MC_SpeedSensorData.WheelTurnCount = WheelTurnCount_Temp >> 12;			
 			}
 		}
 		else if(MC_ConfigParam1.SpeedSignal == MC_SPEED_CADENCE_CAL) //根据踏频计算

+ 2 - 2
User/Src/var.c

@@ -520,9 +520,9 @@ void Var_Init(void)
 	strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ010D.       ", 16);
 	
 	#if BaudRate250K
-  strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r3_20231117C", 16);
+  strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r3_20231118C", 16);
 	#else
-	strncpy(MC_VerInfo.FW_Version, (char*)"V3r4r3_20231117C", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V3r4r3_20231118C", 16);
 	#endif
 	
   #if NormalWork

Some files were not shown because too many files changed in this diff