TI中文支持网
TI专业的中文技术问题搜集分享网站

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

你好:

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

请问是用的哪款芯片?上面贴出的代码的来源也贴一下。

Shine:

请问用的是哪款器件?timer的执行周期和CPU主频有关。

user4431315:

回复 Nancy Wang:

你好,我用的是J721EXSOMG01EVM开发板

user4431315:

回复 Shine:

你好,我用的是J721EXSOMG01EVM开发板,不过我已经设置了timer的的频率,执行周期还会与cpu主频有关吗?

user4431315:

回复 Shine:

你好,我目前在用J721EXSOMG01EVM,在R5核上运行sys/bios。不过我目前已经设置了timer的频率,timer执行周期还会与cpu频率有关吗?

Nancy Wang:

回复 user4431315:

App_TimerFxn()执行周期大概0.25s执行 请问这部分是怎么测试的? 看你的代码部分,设置的周期是2500s? timerParams.period = 2500000;

bios 中platform cpu frequency怎么配置的?用的哪个timer以及timer的频率这几项都检查一下,是不是没有配置正确。

user4431315:

回复 Nancy Wang:

你好,我会在App_TimerFxn()中用串口输出一个字符串,连续两次输出时间间隔大概就是0.25s,bios中cpufrequency应该就是默认的1G频率,使用的定时器是Timer_ANY,timer的频率我设置的就应该是timerParams.extFreq.lo = 25000000;这样的

Nancy Wang:

回复 user4431315:

对TDA4VM这款芯片不熟悉,建议可以去英文论坛问一下。
e2e.ti.com/…/791
如果有SYS/BIOS相关的问题,可以继续讨论。

user4431315:

回复 Nancy Wang:

好的,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 使用sys/bios定时器时,定时器周期如何计算
分享到: 更多 (0)