2.4.1 功能描述
定时器工作原理:首先要设定定时器的初值,然后启动定时器。一旦启动,定时器就从初值开始累计增加或减小(在实验所用的芯片中是递减)。每增加或减小一个数需要特定的时间,这个特定的时间是累加指令的机器周期,是由处理器的晶振的频率决定的。计数值从初值计至0 时,TIMER 模块发出中断,然后计数器跳至用户配置的值,重复递增或递减过程。在中断寄存器允许的情况下处理器响应中断,通过中断服务程序执行特定的任务。
TIMER 模块包括4 个通道。每个通道包括一个32 位计数器,以及一个加载计数寄存器。计数器的重新加载、计数使能以及中断的产生受到控制寄存器的各个控制位的控制。图2.6是TIMER 中的一个通道的功能结构。
图2.6 TIMER的功能结构图
TIMER 有两种工作模式:
1)正常工作模式
TIMER 在正常工作模式时,当通道使能后计数器锁存加载计数寄存器的值,然后在系统时钟的驱动下递减计数。当计数到零时,产生一个计数到零的标志用于设置相应的中断标志位,若中断未被屏蔽则产生中断;同时,计数器重新锁存加载计数寄存器的值开始一个新的计数周期。
2)自由工作模式
TIMER 在自由工作模式时,当通道使能后计数器锁存加载计数寄存器的值,然后在系统时钟的驱动下递减计数。当计数到零时,产生一个计数到零的标志用于设置相应的中断标志位,若中断未被屏蔽则产生中断;同时,计数器加载数据32’H FFFFFFFF 开始一个新的计数周期。
TIMER 中四个通道的中断都可以通过各自的控制寄存器屏蔽。任意一个通道计数完毕都会产生一个中断。TIMER 的中断输出是四个中断源的线或。
查询中断源有两种方法:1)查询各个通道的中断屏蔽状态寄存器是否被置1;2)查询TIMER 中断屏蔽状态寄存器,看各个通道相应位是否被置1。
清除中断的方法也有两种:1)读各个通道的中断状态清除寄存器,相应通道的中断会被清除;2)读TIMER 中断状态清除寄存器,所有通道的中断都会被清除。查询到中断源后,如果不重新配置加载计数寄存器,计数器会按照原来的配置继续计数,直到计数完毕再发出中断。如果要重新配置,清完中断后应该先将计数器关闭,然后配置新的计数值,再将计数器打开。
2.4.2 寄存器描述
2.4.2.1 通道x 加载计数寄存器(TxLCR)
表2.5 通道x 加载计数寄存器
数据位 31 : 0
名称 TxLC[31:0]
类型 R/W
复位值 0
TxLC[31:0] — 通道 x 加载计数值
TIMER 在正常工作模式时,此值作为当计数器递减计数到零时的重新加载值。加载后TIMER 的计数器从此值开始一个新的递减计数周期。当每次使能TIMER 时(TxEN 彼特位从0 到1),此值也被加载到计数器中作为计数初始值。
2.4.2.2 通道x 当前计数值寄存器(TxCCR)
表2.6 通道x 当前计数值寄存器
数据位 31 : 0
名称 TxCC[31:0]
类型 R
复位值 0
TxCC[31:0] — 通道 x 当前计数器计数的值
每个TIMER 通道都有一个32 位的计数器。通过这个寄存器可以读取当前计数器的值。当TIMER 通道没有使能时,读取的值为0。
2.4.2.3 通道x 控制寄存器(TxCR)
表2.7 通道x 控制寄存器
数据位 31 : 3 2 1 0
名称 Reserve TxIM TxM TxEN ARM嵌入式系统的数据采集传输系统研究+源程序(6):http://www.youerw.com/tongxin/lunwen_2633.html