|
@@ -60,8 +60,8 @@ void SpeedSensor_Process(MC_SpeedSensorData_Struct_t* p_MC_SpeedSensorData, uint
|
|
|
}
|
|
|
p_MC_SpeedSensorData->Speed_Data = (uint32_t)WheelSize * 360 / Poles / p_MC_SpeedSensorData->DiffTime_ms;//单位0.1km/h
|
|
|
|
|
|
- //中值滤波
|
|
|
- *AvgResult = MovingMiddleFilter(p_MC_SpeedSensorData->Speed_Data, FiltTemp, sizeof(FiltTemp) >> 1);
|
|
|
+ //滑动均值滤波
|
|
|
+ *AvgResult = MovingAverageFilter(p_MC_SpeedSensorData->Speed_Data, FiltTemp, sizeof(FiltTemp) >> 1);
|
|
|
//在确定停止前进行衰减
|
|
|
if((HAL_GetTick() - p_MC_SpeedSensorData->TrigSysTime) > (p_MC_SpeedSensorData->DiffTime_ms * 2))
|
|
|
{
|
|
@@ -73,6 +73,7 @@ void SpeedSensor_Process(MC_SpeedSensorData_Struct_t* p_MC_SpeedSensorData, uint
|
|
|
{
|
|
|
p_MC_SpeedSensorData->Speed_Data = 0;
|
|
|
*AvgResult = 0;
|
|
|
+ ArrayFillZero(FiltTemp, sizeof(FiltTemp) >> 1);
|
|
|
p_MC_SpeedSensorData->DiffTime_ms = 0xFFFFFFFF;
|
|
|
return;
|
|
|
}
|