This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

使用sys/bios定时器时,定时器周期如何计算

Other Parts Discussed in Thread: SYSBIOS, TDA4VM

你好:

    最近我在使用sys/bios定时器时,发现实际定时器周期与我代码设置周期值不一致,我想文下如何计算这个值?代码如下:

Error_Block eb;
Timer_Params timerParams;

Error_init(&eb);

/* Initialize the timer params */
Timer_Params_init(&timerParams);
timerParams.extFreq.lo = 25000000;
timerParams.extFreq.hi = 0;
timerParams.period = 2500000;
timerParams.periodType =ti_sysbios_interfaces_ITimer_PeriodType_MICROSECS;
timerParams.runMode = ti_sysbios_interfaces_ITimer_RunMode_CONTINUOUS;
timerParams.startMode = ti_sysbios_interfaces_ITimer_StartMode_AUTO;
timerParams.arg = (xdc_UArg)(&timerParams);
timer = Timer_create(Timer_ANY, App_TimerFxn, &timerParams, &eb);
上述代码,App_TimerFxn()执行周期大概0.25s执行。
如果改成如下配置:
timerParams.extFreq.lo = 50000000;
timerParams.extFreq.hi = 0;
timerParams.period = 2500000;
则App_TimerFxn()执行周期大概为0.5s。
如果改成如下配置:
timerParams.extFreq.lo = 50000000;
timerParams.extFreq.hi = 0;
timerParams.period = 5000000;
则App_TimerFxn()执行周期大概为1s。
我想问下周期是如何计算出来的?