LPC2103学习之定时器0和定时器1
器或停止计数器,执行的动作由MCR寄存器控制。
2.匹配控制寄存器(T0MCR、T1MCR)
控制匹配发生时定时器进行的操作。
3.外部匹配寄存器(T0EMR,T1EMR)
外部匹配寄存器提供外部匹配引脚MATn.0~MATn.3(n为0或1)的控制和状态。当匹配输出为PWM输出时,外部匹配寄存器的功能由PWM决定。
下面介绍的是捕获功能寄存器组
它包括:捕获寄存器和捕获控制寄存器。其中捕获控制寄存器用来设置捕获信号,发生捕获事件时,定时器的计数值保存到捕获寄存器中。
1.捕获寄存器(CR0~CR3)
每个捕获寄存器都与一个器件管脚相关联。当管脚发生特定的事件时,可将定时器计数值装入该寄存器,捕获控制寄存器的设定决定捕获功能是否使能以及捕获事件在管脚的上升沿、下降沿或是双边沿发生。
2.捕获控制寄存器
功能有:
设置捕获事件发生的位置,上升沿,下降沿还是上升沿+下降沿
捕获事件发生时,是否产生中断。
下图寄存器描述中,n代表定时器的编号0或1,每路捕获功能,都是由三个位控制的。
最后剩下的就是一些跟定时器0和1有关的其他寄存器
1.计数控制寄存器(T0CTR、T1CTR)
计数控制寄存器用来选择定时模式还是计数模式,同时在计数模式下,用来选择引脚和选择边沿计数(上升沿还是下降沿)
选择计数模式后,捕获输入引脚(由CTCR[3:2]来选择)在每个Pclk的上升沿采样。在比较两个连续的捕获输入引脚采样值之后,将会识别为上升沿、下降沿。边沿的任一种或捕获输入引脚的电平有没有变化。只有CTCR[1:0]设置的事件被识别后,定时计数器才会增加。
给计数器提供的外部时钟有些限制。因为需要连续两个Pclk的上升沿才能识别一个捕获输入引脚的变化,捕获输入引脚的输入频率不能超过Pclk的1/2,这种情况下,高/低电平的持续时间必须不小于1/Pclk。
2.PWM控制寄存器(PWM0CON,PWM1CON)
此寄存器用来控制匹配输出为PWM输出。每个匹配输出可独立的设置为PWM输出。对于每个定时器,最多可以选择3个单边沿PWM输出在MATn.2:0上。另外一个匹配寄存器用来决定PWM输出的周期,当其他任何一个匹配寄存器发生匹配时,PWM输出将置为高电平。定时器可被选择作为PWM周期的匹配寄存器复位。当定时器复位为0时,所有PWM的输出将会置为低电平。
下面是单边沿控制PWM输出的规则:
1.除了在匹配值为0的情况之外,每个PWM周期的开始,所有控制的PWM输出为低(此时定时器设置为0)
2.匹配寄存器发生匹配时,相关的PWM输出将会置高。如果没有匹配发生(例如,匹配值大于PWM周期),PWM输出将会一直输出低电平
3.如果匹配寄存器的值大于PWM输出周期,且PWM的输出为高电平,则在定时器复位时,PWM输出将会被清零。
4.如果有一个匹配寄存器的值跟PWM周期值一样,则在下一个时钟PWM周期计数时钟之后将会复位,因此,一个PWM将由一个时钟宽度的高电平组成,宽度由PWM的计数时钟决定。
5.如果一个匹配寄存器的值为0,则第一次的PWM输出为高电平。同时在定时器复位之后还将一直保持高电平。
接着说明关于定时器的中断。
LPC2103有两个32位定时器,每个定时器可以产生8种类型的中断。4路匹配中断、4路捕获中断,可以读取中断标志寄存器(TnIR)来区分中断类型。下图是定时器中断与向量中断控制器(VIC)的关系
1.匹配中断
LPC2103定时器溢出不会产生中断,但匹配可以产生中断。每个定时器都有4个匹配寄存器,存放匹配值。当定时器的计数值TC等于MR时,就可以产生中断。切寄存器TnMCR控制匹配中断的使能。下图就是以定时器0为例的匹配中断说明:
2.捕获中断
当定时器的捕获引脚CAP上出现特定捕获信号时,可以产生中断。下图以CAP0.0为例说明:
以上就是定时器0和定时器1的全部内容了,感觉LPC2103的定时器还是蛮强大的。下来做个简易的频率计巩固这节的知识。
参考《EasyARM2103教材》
LPC2103定时器0定时器 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)