1.定时器的结构组成
定时器主要由定时寄存器TIM、定时周期寄存器PRD、定时控制寄存器TCR(包括预标定分频系数TDDR、预标定计数器PSC、控制位TRB和TSS等)及相应的逻辑控制电路组成。其中寄存器TIM、PRD和TCR都是存储器映射寄存器,它们在数据存储器中的地址分别为0024h、0025h和0026h。定时寄存器TIM是16位减1计数器;定时周期寄存器PRD用来存放定时时间;定时控制寄存器TCR用来存放定时器的控制位和状态位。逻辑控制电路主要用来控制定时器协调工作。定时器的结构框图如图8-1所示。
图8-1 定时器的结构框图
逻辑控制电路由三个或门和一个与门组成,其对外接口信号有:输入信号包括、TRB、TSS、CLKOUT;输出信号包括TINT、TOUT。其中,输入信号复位和TRB的作用是控制计数器重新加载初始值,具体是指控制PRD的加载计数和控制PSC的加载计数;停止控制位TSS的作用是,利用与门逻辑结构可以选通或屏蔽CLKOUT信号,来实现对定时器的启动与停止;TINT是输出信号,用于外部定时中断触发,定时时间到可以触发TMS320C54x中断;TOUT是输出信号,用于定时输出,可以输出定时波形。
2.定时器的控制寄存器
定时控制寄存器TCR是16位存储器映射寄存器,包含定时器的控制位和状态位。定时控制寄存器TCR各位的定义如图8-2所示。
图8-2 定时控制寄存器TCR的位结构定义
各个位功能组合说明如下:
1)TDDR:定时器分频系数,用来对CLKOUT进行分频,以改变定时周期。它的最大预定标值为16,最小预定标值为1。当PSC减到0后,以TDDR中的数加载PSC。
2)TSS:定时器停止状态位,用于停止或启动定时器。复位时,TSS位清0,定时器立即定时;当TSS=0时,定时器启动工作;当TSS=1时,定时器停止工作。
3)TRB:定时器重新加载位,用来复位片内定时器。当TRB置1时,以PRD中的数加载TIM,以及以TDDR中的值加载PSC。TRB总是读成0。
4)PSC:定时器预定标计数器,其标定范围为1~16。当PSC减到0后,TDDR位域中的数加载到PSC,TIM减1。
5)Free、Soft:软件调试控制位。Free和Soft位结合使用,用来控制调试程序断点操作情况下的定时器工作状态,功能说明见表8-1。
表8-1 软件调试控制位功能说明
6)保留:保留;读成0。
3.定时器的工作原理
主定时器模块由PRD和TIM组成。在正常工作情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。当系统复位(图8-1中的置1)或者定时器单独复位(TRB置1)时,PRD中的时间常数重新加载到TIM。
复位后,定时控制寄存器TCR的停止状态位TSS=0,定时器启动工作,时钟信号CLKOUT加到预定标计数器PSC。PSC也是一个减1计数器,每当复位或其减到0后,自动地将定时器分频系数TDDR加载到PSC。PSC在CLKOUT作用下,作减1计数。当PSC减到0时,产生一个借位信号,令TIM作减1计数。TIM减到0后,产生定时中断信号TINT,传送至CPU和定时器输出引脚TOUT。
由上可见,定时器的基本定时周期T可由下式计算:(www.xing528.com)
式中,CLKOUT为时钟周期,TDDR和PRD分别为定时器的分频系数和时间常数。
若要关闭定时器,只要将TCR的TSS位置1,就能切断时钟输入,定时器停止工作。当不需要定时器时,关闭定时器可以减小器件的功耗。
读TIM和TCR寄存器,可以知道定时器中的当前值和预定标计数器中的当前值。由于读这两个寄存器要用两条指令,就有可能在两次读之间发生读数变化。因此,如果需要精确的定时测量,就应当在读这两值之前先关闭定时器。
用定时器可以产生外围电路(如模拟接口电路)所需的采样时钟信号。一种方法是直接利用TOUT信号;另一种方法是利用中断,周期地读一个寄存器。
4.定时器应用的初始化
(1)定时器模块的初始化步骤如下:
1)TCR的TSS位置1,关闭定时器,停止定时。
2)装载PRD值。
3)重新装入TCR,初始化TDDR,设置TSS=0和TRB=1,重装载定时器周期。启动定时器。
(2)设置定时器中断方法(INTM=1)如下:
1)将IFR中的TINT置1,以清除尚未处理完的定时器中断。
2)将IMR中的TINT置1,启动定时器中断。
3)将INTM置0,启动全部中断。
(3)复位时,TIM和PRD被设置为最大值(0FFFFh),TCR中的TDDR置0,定时器可以通过启动定时控制寄存器(TCR)完成以下操作:
1)设定定时器的工作方式。
2)设定预定标计数器中的当前数值。
3)启动或停止定时器。
4)重新装载定时器。
5)设置定时器的分频值。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。