你好:
最近我在使用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。
我想问下周期是如何计算出来的?