在主函数中用LED,检验定时器工作是否正常,
当TimerValueGet(TIMER1_BASE,TIMER_A)==5000000UL,LED2亮
当 TimerValueGet(TIMER1_BASE,TIMER_A)==10000000UL,LED1亮
结果发现在调试时只有LED2亮了,LED1始终不亮
有一下几个问题不懂
1.TM4C129中默认的32位全周期定时定时器定时周期怎么算,默认计数方式是向上计数还是向下计数?
2.imerValueGet()的返回值是变化范围是多少?
3.LED2亮后,为何LED1亮不了?
xyz549040622:
10000000是不是超出范围了,超出定时器的范围了,你跟踪下这个值
wenhua song:
回复 xyz549040622:
32位定时器,按理来说最大装载值应该能到达0xf f f f f f f f 的,我现在都不晓得默认情况下它每加一的时长是怎么算,怎么设定了,好纠结
Michael Sun:
回复 wenhua song:
定时器默认的时钟和系统一样的。如果您设置了主频为120MHz,则计数的频率为120MHz。
默认是向下计数的,给了初值后向下减到0就触发中断。
关于定时器我们的TivaWare中提供了例程:
C:\ti\TivaWare_C_Series-2.1.0.12573\examples\boards\ek-tm4c1294xl\timers
请参考这个例程,配合库函数的手册就可以很快用起来定时器。