Explorar el Código

车速传感器个数为0时根据踏频或电机转速计算车速和里程。

dd hace 2 meses
padre
commit
f490947565

+ 2 - 2
3.BasicFunction/Include/Cadence.h

@@ -30,7 +30,7 @@
 #define TORQUE_LF_MINFRE                25   // Min frequency of human foot in Low frequency method, 0.01Hz
 #define TORQUE_HF_MAXTIME_MS            150  // 3000             //Min time of valid pulses, ms
 #define TORQUE_ERROR_RESETTIME_MS       5000 // TIMER PERIOD,ms
-#define TORQUE_TIM_TIMERUNIT_US         ((SLONG)100000/FTBS_HZ)   //25   // TIMER PERIOD,ms    us
+#define TORQUE_TIM_TIMERUNIT_US         ((SLONG)1000000/FTBS_HZ)   //25   // TIMER PERIOD,ms    us
 #define TORQUE_LPF_GAIN                 80   //%
 #define TORQUE_MAX_FREQUENCY            5    // Hz, human foot
 //#elif (ASSIST_MODE == CADENCE_ASSIST)
@@ -42,7 +42,7 @@
 #define CADENCE_LF_MINFRE                25   // Min frequency of human foot in Low frequency method, 0.01Hz
 #define CADENCE_HF_MAXTIME_MS            ((800*12)/CADENCE_NUMBERS_PULSES)  // 3000             //Min time of valid pulses, ms
 #define CADENCE_ERROR_RESETTIME_MS       5000 // TIMER PERIOD,ms
-#define CADENCE_TIM_TIMERUNIT_US         ((SLONG)100000/FTBS_HZ)   //25   // TIMER PERIOD,ms    us
+#define CADENCE_TIM_TIMERUNIT_US         ((SLONG)1000000/FTBS_HZ)   //25   // TIMER PERIOD,ms    us
 #define CADENCE_LPF_GAIN                 80   //%
 #define CADENCE_MAX_FREQUENCY            5    // Hz, human foot
 //#endif

+ 27 - 8
3.BasicFunction/Source/canAppl.c

@@ -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;

+ 2 - 2
4.BasicHardwSoftwLayer/2.BasicSoftwLayer/Include/user.h

@@ -46,9 +46,9 @@ Update Time
 #define ASSIST_MODE    TORQUE_ASSIST
 
 /*======================================================================*
-    三力标志
+    三力标志
 *=======================================================================*/
-#define TORSENSOR3NUM  //三力矩标识
+//#define TORSENSOR3NUM  //三力矩标识
 
 /*======================================================================*
    Motor Number Selection