|
@@ -104,56 +104,6 @@ static void cadence_voCadenceIdle(UWORD source)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/***************************************************************
|
|
|
- Function: cadence_voFreGet;
|
|
|
- Description: cadence frequency get
|
|
|
- Call by: functions in main loop;
|
|
|
- Input Variables: N/A
|
|
|
- Output/Return Variables: N/A
|
|
|
- Subroutine Call: N/A;
|
|
|
- Reference: N/A
|
|
|
-****************************************************************/
|
|
|
-static void cadence_voCadenceLowFrequencyWork(UWORD source)
|
|
|
-{
|
|
|
- if (source == 1)
|
|
|
- {
|
|
|
- cadence_stFreGetOut.uwCaputureOverflowCnt++;
|
|
|
- if (cadence_stFreGetOut.uwCaputureOverflowCnt == cadence_stFreGetCof.uwLfRecordTimeCnt)
|
|
|
- {
|
|
|
- cadence_stFreGetOut.uwFrequencyPu = (UWORD)(((UQWORD)cadence_stFreGetOut.uwCaputureNumCnt << 20) * 1000 /
|
|
|
- (cadence_stFreGetCof.uwLfRecordTimeCnt * cadence_stFreGetCof.uwTimerUnit) /
|
|
|
- cadence_stFreGetCof.uwNumbersPulses / FBASE);
|
|
|
- cadence_stFreGetOut.uwCaputureOverflowCnt = 0;
|
|
|
- cadence_stFreGetOut.uwCaputureNumCnt = 0;
|
|
|
-
|
|
|
- if (cadence_stFreGetOut.uwFrequencyPu < (cadence_stFreGetCof.uwLfMinFrePu))
|
|
|
- {
|
|
|
- cadence_stFreGetOut.uwFrequencyPu = 0;
|
|
|
- cadence_stFreGetOut.uwLPFFrequencyPu = 0;
|
|
|
- cadence_stFreGetOut.blCadenceCalStartState = FALSE;
|
|
|
- cadence_stFreGetOut.uwCaputureOverflowCnt = 0;
|
|
|
- cadence_stFreGetOut.uwCaputureNumCnt = 0;
|
|
|
- cadence_stFreGetOut.cadence_fsm = CADENCE_IDLE;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- cadence_stFreGetOut.uwCaputureNumCnt++;
|
|
|
- }
|
|
|
-
|
|
|
- if (cadence_stFreGetOut.uwFrequencyPu > cadence_stFreGetCof.uwMaxCadenceFre)
|
|
|
- {
|
|
|
- cadence_stFreGetOut.uwFrequencyPu = 0;
|
|
|
- cadence_stFreGetOut.blCadenceCalStartState = FALSE;
|
|
|
- cadence_stFreGetOut.blCadenceSensorErrorFlg = TRUE;
|
|
|
- cadence_stFreGetOut.uwCaputureOverflowCnt = 0;
|
|
|
- cadence_stFreGetOut.uwCaputureNumCnt = 0;
|
|
|
- cadence_stFreGetOut.uwCaputure2Cnt = 0;
|
|
|
- cadence_stFreGetOut.uwCaputure1Cnt = 0;
|
|
|
- cadence_stFreGetOut.cadence_fsm = CADENCE_ERROR;
|
|
|
- }
|
|
|
-}
|
|
|
/***************************************************************
|
|
|
Function: cadence_voFreGet;
|
|
|
Description: cadence frequency get
|
|
@@ -184,16 +134,16 @@ static void cadence_voCadenceHighFrequencyWork(UWORD source)
|
|
|
if(cadence_stFreGetOut.uwOverflowfirst == 1)
|
|
|
{
|
|
|
cadence_stFreGetOut.uwCaputureOverflowCnt -=1;
|
|
|
- ulCaputureCntErr = ((ULONG)cadence_stFreGetOut.uwCaputureOverflowCnt * 720 * cadence_stFreGetCof.uwTimerUnit) -
|
|
|
- cadence_stFreGetOut.uwCaputure1Cnt + cadence_stFreGetOut.uwCaputure2Cnt;
|
|
|
+ ulCaputureCntErr = ((ULONG)cadence_stFreGetOut.uwCaputureOverflowCnt * 720 * cadence_stFreGetCof.uwTimerUnit) + cadence_stFreGetOut.uwCaputure2Cnt
|
|
|
+ -cadence_stFreGetOut.uwCaputure1Cnt;
|
|
|
cadence_stFreGetOut.uwCaputureOverflowCnt = 1;
|
|
|
cadence_stFreGetOut.uwOverflowfirst = 0;
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- ulCaputureCntErr = ((ULONG)cadence_stFreGetOut.uwCaputureOverflowCnt * 720 * cadence_stFreGetCof.uwTimerUnit) -
|
|
|
- cadence_stFreGetOut.uwCaputure1Cnt + cadence_stFreGetOut.uwCaputure2Cnt;
|
|
|
+ ulCaputureCntErr = ((ULONG)cadence_stFreGetOut.uwCaputureOverflowCnt * 720 * cadence_stFreGetCof.uwTimerUnit) + cadence_stFreGetOut.uwCaputure2Cnt
|
|
|
+ -cadence_stFreGetOut.uwCaputure1Cnt;
|
|
|
cadence_stFreGetOut.uwCaputureOverflowCnt = 0;
|
|
|
cadence_stFreGetOut.uwOverflowfirst = 0;
|
|
|
}
|
|
@@ -304,7 +254,6 @@ static void cadence_voCadenceHighFrequencyWork(UWORD source)
|
|
|
****************************************************************/
|
|
|
static void cadence_voCadenceBackword(UWORD source)
|
|
|
{
|
|
|
-
|
|
|
if (source == 1)
|
|
|
{
|
|
|
cadence_stFreGetOut.uwCaputureOverflowCnt++;
|
|
@@ -319,27 +268,12 @@ static void cadence_voCadenceBackword(UWORD source)
|
|
|
cadence_stFreGetOut.uwFreqPercent = 0;
|
|
|
cadence_stFreGetOut.cadence_fsm = CADENCE_HFreWork;
|
|
|
cadence_stFreGetOut.uwCaputure1Cnt = (UWORD)TIMER1_CAP_CANDANCE;
|
|
|
- cadence_stFreGetOut.uwFrequencyPu = 1 * CADENCESPEED_KMPERH2FREQPU;
|
|
|
+ cad_pvt_ulCadFreqPu = 1 * CADENCESPEED_KMPERH2FREQPU;
|
|
|
+ cadence_stFreGetOut.uwFrequencyPu = (UWORD)cad_pvt_ulCadFreqPu;
|
|
|
cadence_stFreGetOut.uwLPFFrequencyPu = (cadence_stFreGetOut.uwLPFFrequencyPu * cadence_stFreGetCof.uwCadenceLPFgain +
|
|
|
cadence_stFreGetOut.uwFrequencyPu * (100 - cadence_stFreGetCof.uwCadenceLPFgain)) /
|
|
|
100;
|
|
|
}
|
|
|
-
|
|
|
- // if (cadence_stFreGetOut.uwCaputureOverflowCnt >= cadence_stFreGetCof.uwHfMaxTimeCnt) // 100ms
|
|
|
- // {
|
|
|
- // cadence_stFreGetOut.uwFrequencyPu = 0;
|
|
|
- // cadence_stFreGetOut.uwLPFFrequencyPu = 0;
|
|
|
- // cadence_stFreGetOut.blCadenceCalStartState = FALSE;
|
|
|
- // cadence_stFreGetOut.blCadenceSensorErrorFlg = FALSE;
|
|
|
- // cadence_stFreGetOut.uwCaputureOverflowCnt = 0;
|
|
|
- // cadence_stFreGetOut.uwCaputureNumCnt = 0;
|
|
|
- // cadence_stFreGetOut.uwCaputure2Cnt = 0;
|
|
|
- // cadence_stFreGetOut.uwCaputure1Cnt = 0;
|
|
|
- // cadence_stFreGetOut.cadence_dir = CADENCE_DIR_IDLE;
|
|
|
- // cadence_stFreGetOut.cadence_fsm = CADENCE_IDLE;
|
|
|
- // cadence_stFreGetOut.uwFreqPercent = 0;
|
|
|
-
|
|
|
- // }
|
|
|
}
|
|
|
/***************************************************************
|
|
|
Function: cadence_voFreGet;
|
|
@@ -426,9 +360,6 @@ void cadence_voCadenceCal(UWORD source)
|
|
|
case CADENCE_IDLE:
|
|
|
cadence_voCadenceIdle(source);
|
|
|
break;
|
|
|
- case CADENCE_LFreWork:
|
|
|
- cadence_voCadenceLowFrequencyWork(source);
|
|
|
- break;
|
|
|
case CADENCE_HFreWork:
|
|
|
cadence_voCadenceHighFrequencyWork(source);
|
|
|
break;
|