|
@@ -19,7 +19,7 @@ protected:
|
|
|
iCap_EnableDeviceInterrupt(0);
|
|
|
iCap_BindChannelInterrupt(0,CAP_CH(3),IC_BikeSpdISR);
|
|
|
iCap_EnableChannelInterrupt(0,CAP_CH(3));
|
|
|
- iCap_BindChannelInterrupt(0,CAP_CH(2),IC_CadenceISR);
|
|
|
+ iCap_BindChannelInterrupt(0,CAP_CH(2),IC_CadenceISR);
|
|
|
iCap_EnableChannelInterrupt(0,CAP_CH(2));
|
|
|
|
|
|
cadence_voCadenceInit();
|
|
@@ -188,12 +188,12 @@ class BikeSpeedTest3 : public BikeSpeedTest, public testing::WithParamInterface<
|
|
|
TEST_P(BikeSpeedTest3, IntSimultFreCal)
|
|
|
{
|
|
|
/* Coef Cal */
|
|
|
+ switch_flg.SysCoef_Flag = TRUE;
|
|
|
bikespeed_voBikeSpeedCof();
|
|
|
bikespeed_stFreGetCof.uwNumbersPulses = BIKESPEED_NUMBERS_PULSES;
|
|
|
- switch_flg.SysCoef_Flag = TRUE;
|
|
|
+
|
|
|
cadence_voCadenceCof();
|
|
|
cadence_stFreGetCof.uwNumbersPulses = CADENCE_NUMBERS_PULSES;
|
|
|
- bikespeed_voBikeSpeedCof(); ///< timer更新中断函数中有bikespeed函数,防止运行时除0
|
|
|
|
|
|
/* Test conditions */
|
|
|
bikespeed_stFreGetOut.bikespeed_fsm = BIKESPEED_WORK;
|
|
@@ -201,19 +201,19 @@ TEST_P(BikeSpeedTest3, IntSimultFreCal)
|
|
|
bikespeed_stFreGetOut.uwCaputure1Cnt = 100;
|
|
|
bikespeed_stFreGetOut.uwCaputureOverflowCnt = 3;
|
|
|
|
|
|
- /* Test conditions */
|
|
|
cadence_stFreGetOut.cadence_fsm = CADENCE_HFreWork;
|
|
|
cadence_stFreGetOut.uwCaputureNumCnt = 1;
|
|
|
cadence_stFreGetOut.uwCaputure1Cnt = 100;
|
|
|
cadence_stFreGetOut.uwCaputureOverflowCnt = 1; ///< OverflowCnt cant be 0
|
|
|
testGpioBValue[GPIOB] = 0;
|
|
|
|
|
|
- double BSoverflowCnt = bikespeed_stFreGetOut.uwCaputureOverflowCnt;
|
|
|
- double BScap1Cnt = bikespeed_stFreGetOut.uwCaputure1Cnt;
|
|
|
-
|
|
|
- double CDoverflowCnt = cadence_stFreGetOut.uwCaputureOverflowCnt;
|
|
|
- double CDcap1Cnt = cadence_stFreGetOut.uwCaputure1Cnt;
|
|
|
+ double bsOverflowCnt = bikespeed_stFreGetOut.uwCaputureOverflowCnt;
|
|
|
+ double bsCap1Cnt = bikespeed_stFreGetOut.uwCaputure1Cnt;
|
|
|
|
|
|
+ double cadOverflowCnt = cadence_stFreGetOut.uwCaputureOverflowCnt;
|
|
|
+ double cadCapCnt = cadence_stFreGetOut.uwCaputure1Cnt;
|
|
|
+
|
|
|
+ /* Capture value */
|
|
|
testCh2CapValue[TIMER1] = get<1>(GetParam());
|
|
|
testCh3CapValue[TIMER1] = get<0>(GetParam());
|
|
|
|
|
@@ -228,14 +228,14 @@ TEST_P(BikeSpeedTest3, IntSimultFreCal)
|
|
|
|
|
|
if(testCh3CapValue[TIMER1] < (iCap_GetPeriod(0) >> 1))
|
|
|
{
|
|
|
- BSoverflowCnt++;
|
|
|
+ bsOverflowCnt++;
|
|
|
}
|
|
|
if(testCh2CapValue[TIMER1] < (iCap_GetPeriod(0) >> 1))
|
|
|
{
|
|
|
- CDoverflowCnt++;
|
|
|
+ cadOverflowCnt++;
|
|
|
}
|
|
|
|
|
|
- double bikeSpeedFreqPu = BSoverflowCnt * 18000 + bikespeed_stFreGetOut.uwCaputure2Cnt - BScap1Cnt;
|
|
|
+ double bikeSpeedFreqPu = bsOverflowCnt * 18000 + bikespeed_stFreGetOut.uwCaputure2Cnt - bsCap1Cnt;
|
|
|
bikeSpeedFreqPu = (double)TIM1CLK_KHZ * 1000 * 1048576 / bikeSpeedFreqPu / FBASE / bikespeed_stFreGetCof.uwNumbersPulses; // Q20
|
|
|
|
|
|
if(bikeSpeedFreqPu > bikespeed_stFreGetCof.uwMaxBikeSpeedFre || bikespeed_stFreGetOut.uwCaputureOverflowCnt > bikespeed_stFreGetOut.uwCaputureOverflowMinCnt)
|
|
@@ -259,7 +259,7 @@ TEST_P(BikeSpeedTest3, IntSimultFreCal)
|
|
|
|
|
|
double capValErrLast = 0, capValErr = 0, cadFreqPu = 0;
|
|
|
capValErrLast = capValErr;
|
|
|
- capValErr = CDoverflowCnt * 18000 + cadence_stFreGetOut.uwCaputure2Cnt - CDcap1Cnt;
|
|
|
+ capValErr = cadOverflowCnt * 18000 + cadence_stFreGetOut.uwCaputure2Cnt - cadCapCnt;
|
|
|
cadFreqPu = (double)TIM1CLK_KHZ * 1000 * 1048576 / ((capValErr + capValErrLast) / 2)/ FBASE / cadence_stFreGetCof.uwNumbersPulses; // Q20
|
|
|
|
|
|
if(cadFreqPu > cadence_stFreGetCof.uwMaxCadenceFre || cadence_stFreGetOut.uwCaputureOverflowCnt > cadence_stFreGetCof.uwHfMaxTimeCnt || cadence_stFreGetOut.cadence_dir == 1)
|