F28335 定时器学习总结

时间:2024-04-13 15:32:19

1 定时器的操作原理

F28335有3个32位的通用定时器,分别时TIMER0,TIMER1,TIMER2 。

我们一般只使用定时器0,在特殊的实时操作系统BIOS时需要用定时器TIMER1和TIMER2 ,但是如果没有使用实时操作系统,3个定时器都可以使用。

下一篇文章里会有完整的定时器0的配置过程和代码。

下图位定时器功能框图:

F28335 定时器学习总结

定时器中断结构:

F28335 定时器学习总结

定时器的中断配置过程按照这个图来进行,同上面文章中断配置中一样。

2 定时器的计数过程

定时器有一个预分频模块和定时/计数模块,这两个模块决定了定时器的周期和频率。

预分频模块有:一个16位的定时器分频寄存器(TDDR),一个16位预定标寄存器(PSC)

定时/计数模块:一个32位的周期寄存器(PRD),一个32位的计数寄存器(TIM)

计数方式:当系统时钟来一个脉冲,预定标寄存器减1,当PSC减到0后,PSC产生下溢的信号。然后就会向计数器TIM借位,同时PSC会重新装载TDDR内存的值。当TIM减到0产生下溢的时候,计数寄存器会重载周期寄存器PRD的值,同步产生一个中断信号给CPU。

小结:定时器是通过不断的减1,当PSC减到0,重新装载TDDR,当TIM减到0,重新装载PRD值,总共减TDDR*PRD总值。

3 定时器的相关寄存器

定时控制寄存器 TIMERxCTR

F28335 定时器学习总结

预定标寄存器 TIMERxTPR TIMERxTPRH

名称 功能描述
15~8 PSC PSC保存当前定时器的预定标值。PSH大于零时,每个时钟周期都会减1,在PSCH减为0,PSC使用TDDR内的值重新装载,定时计数寄存器减1。可以读取PSC内的值,但是不可以直接写,只能通过TDDR来装载。
7~0 TDDR

CPU定时器分频寄存器

每个TDDR+1个定时器时钟源,定时器计数器寄存器TIM减1。当PSC=0时,TDDR内的值重新装载如PSC。复位时TDDR清零,

定时/计数器 TIMERxTIM

F28335 定时器学习总结

 

定时周期寄存器 TIMERxPRD

F28335 定时器学习总结