|
@@ -902,16 +902,35 @@ void Can_voMC_Run_200ms(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void Can_Trip_Cal(void)
|
|
|
+void Can_Trip_Cal(void) //200ms
|
|
|
{
|
|
|
- if (bikespeed_stFreGetOut.blUpdateTripCntFlg == TRUE)
|
|
|
+ static ULONG TripCalByKmh = 0;
|
|
|
+
|
|
|
+ if(bikespeed_stFreGetCof.uwNumbersPulses == 0) //根据车速估算
|
|
|
+ {
|
|
|
+ UWORD Speed_mps = (cp_stBikeRunInfoPara.BikeSpeedKmH * 2844) >> 10; //0.01m/s
|
|
|
+ TripCalByKmh += Speed_mps;
|
|
|
+ if(TripCalByKmh > 50000) //累加周期T=200ms, 单位0.01m/s,累加到100m
|
|
|
+ {
|
|
|
+ MC_RunInfo.Ride_Km++;
|
|
|
+ cp_stHistoryPara.ulODOTrip++; // Unit: 0.1km
|
|
|
+ cp_stHistoryPara.ulRealODOTrip++; // Unit: 0.1km
|
|
|
+ cp_stHistoryPara.ulTripSum++;
|
|
|
+ Can_RemainTrip_Cal();
|
|
|
+ TripCalByKmh = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
- MC_RunInfo.Ride_Km++;
|
|
|
- cp_stHistoryPara.ulODOTrip++; // Unit: 0.1km
|
|
|
- cp_stHistoryPara.ulRealODOTrip++; // Unit: 0.1km
|
|
|
- cp_stHistoryPara.ulTripSum++;
|
|
|
- Can_RemainTrip_Cal();
|
|
|
- bikespeed_stFreGetOut.blUpdateTripCntFlg = FALSE;
|
|
|
+ if (bikespeed_stFreGetOut.blUpdateTripCntFlg == TRUE)
|
|
|
+ {
|
|
|
+ MC_RunInfo.Ride_Km++;
|
|
|
+ cp_stHistoryPara.ulODOTrip++; // Unit: 0.1km
|
|
|
+ cp_stHistoryPara.ulRealODOTrip++; // Unit: 0.1km
|
|
|
+ cp_stHistoryPara.ulTripSum++;
|
|
|
+ Can_RemainTrip_Cal();
|
|
|
+ bikespeed_stFreGetOut.blUpdateTripCntFlg = FALSE;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
MC_RideLog.ODO_Km = cp_stHistoryPara.ulODOTrip;
|