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

TM4C定时器

系统时钟我设的是40MHz,

SysCtlClockSet(SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_8MHZ |
SYSCTL_OSC_MAIN);我想定时1ms中断

SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
//配置timer0为全周期
TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
//1ms定时
systlctime = (SysCtlClockGet());
TimerLoadSet(TIMER0_BASE, TIMER_A,400000);
TimerIntRegister(TIMER0_BASE, TIMER_A,timer_hander);
IntEnable(INT_TIMER0A);//NVIC
TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
IntMasterEnable();
TimerEnable(TIMER0_BASE, TIMER_A);

这样配置对吗?

好多人使用TimerLoadSet(TIMER0_BASE, TIMER_A,(SysCtlClockGet())/400000);设置装载值,这样设置如何计算定时时间?不是太清楚这块,请大侠指点,谢谢

xyz549040622:

在定时器不分频的情况下,定时器变化个数字1的时间是主频的倒数,单位是s,那么SysCtlClockGet()次就是1s,根据次数做个比例函数就可以计算了。

又因为时间是频率的倒数,比如我们定时10hz,就是1/10s,所以定时计次数应该是SysCtlClockGet()/xHz-1,还有有的库中SysCtlClockGet()这个函数是不一定对的,需要实际测试是否是主频。

Seven Han:

参考C:\ti\TivaWare_C_Series-2.1.4.178中的例程

赞(0)
未经允许不得转载:TI中文支持网 » TM4C定时器
分享到: 更多 (0)