这两天学习LPC2103的守时器。开端看前面的寄存器介绍看的有点头晕,一瞬间就搞混了。不过当我看到后边用图片描绘守时器相关寄存器操作时,一下就明晰了。知道运用再看原理后比较明晰。
为什么把这两个守时器放到一同,由于它们都是32位的守时器,它们除了外设基地址不同外,其他都相同。
说说这两个守时器的特性
1.两个32位守时器守时器/计数器各含有一个可编程的32位预分频器;
2.计数器或守时器操作;
3.守时器0有3路、守时器1有4路捕获通道。当输入信号跳变时可获得守时器的瞬时值,也可挑选使捕获事情发生中止;
4.每个守时器共有4个32位匹配寄存器,匹配时的动作有下面三种:
匹配时守时器持续作业,可挑选发生中止。
匹配时守时器中止作业,可挑选发生中止。
匹配时复位守时器,可挑选发生中止。
5.守时器0有3个、守时器1有4个对应于匹配寄存器的外部输出,匹配时的输出有如下4种:
匹配时设置为低电平
匹配时设置为高电平
匹配时翻转
匹配时无动作
6.关于每个守时器,多达4个匹配寄存器可装备为PWM,答应运用多达3个匹配输出作为单边缘操控的PWM输出。
假如接下来便是说一大推寄存器的话,必定犯困。我开端便是从头开端看那么多寄存器看的犯晕。可是换个办法,从守时器运用动身,再来细看守时器寄存器,一会儿会恍然大悟不少。
就守时器的运用来说,一共有3个。一是单纯的作为守时器,二是作为比较匹配。三便是守时器用作捕获功用。
先看看守时器用作守时功用时寄存器的模块图
1.32位守时器TC的计数频率由Fpclk经过预分频计数器得到
2.守时器的发动/中止、计数复位由TCR操控
3.需求留意的是,守时器溢出不会发生中止,守时器的中止是由捕获事情或匹配事情引发的,所以上图最终那根线是虚线。
再看守时器用作比较匹配时的寄存器框图
1.守时器的比较匹配功用由寄存器MCR进行操控
2.MR0~3寄存的是四路比较匹配通道的比较值
3.当发生匹配时,依照MCR设置的办法发生中止或复位TC等
4发生匹配时,EMR操控匹配引脚输出——高电平、低电平、引脚电平翻转等。
最终是守时器用作捕获功用时寄存器的框图
1.守时器的捕获功用由寄存器CCR进行操控
2.经过CCR寄存器,捕获事情能够设定为上升沿触发,下降沿触发、双边缘触发
3.经过CCR寄存器,能够设定当捕获事情发生时,是否发生中止
4.CR0~3为4路捕获寄存器,保存对应的捕获值
看见以上的守时器的三个功用,操作办法天然也大约明晰了:
1.核算守时器的时钟频率,设置PR寄存器进行分频作业
2.若运用匹配功用,则需装备匹配通道的初值及其作业形式;若运用捕获功用时,需设置捕获功用相关的寄存器。
3.假如要运用到守时器中止,则需设置VIC,使能中止。、
4.最终设置TCR,发动守时器。
守时器计数时钟频率如下:
计数时钟频率 = Fpclk / (N+1)
N为PR的值
知道一个大约,然后再看详细的寄存器,我是觉得这样比较好些。
先是寄存器汇总,看看关于守时器0与守时器1总共有多少个寄存器:
下面分类介绍寄存器。先说根本的寄存器:
1.中止标志寄存器(T0IR、T1IR)
包含4个用于匹配中止的标志位,4个用于捕获中止的标志位。详细描绘如下图,假如有中止发生,则相应寄存器方位1,否则为0.向相应标志位写1会铲除该中止标志位,写0无效。
2.守时器操控寄存器(T0CR、T1CR)
该寄存器用于操控守时器计数器的操作。
3.守时器计数器(T0TC、T1TC)
当预分频的计数器抵达计数的上限时,32位守时器计数器TC加1。如下图所示,假如TC抵达计数上限之前没有被复位,它会一向计数到0XFFFFFFFF然后翻转到0X00000000,该事情不会发生中止。假如需求,能够用匹配寄存器检测溢出。
4.预分频寄存器(T0PR、T1PR)
32位预分频寄存器指定了预分频计数器的最大值
5.预分频计数器寄存器(T0PC、T1PC)
预分频计数器运用某个常量来操控Pclk的分频,可完成操控守时器分辨率和守时器溢出之间的联系。预分频计数器每个Pclk周期加1,当到达预分频寄存器中保存的值时,守时器计数器加1,预分频计数器在下个Pclk周期复位。当PR=0时,
守时器计数器每个Pclk加1,;当PR=1时,守时器计数器每2个Pclk周期加1,如下图所示。
下面介绍第二部分寄存器,匹配功用寄存器组。
匹配功用寄存器组包含匹配寄存器、匹配操控寄存器和外部匹配寄存器。其间,匹配寄存器用来寄存守时器的匹配值,发生匹配事情时,匹配操控寄存器用来设置守时器的作业。而外部匹配寄存器则用来设置匹配输出引脚的动作。
1.匹配寄存器(MR0~MR3)
匹配寄存器接连与守时器计数值(TC)相比较,当两个值持平时,则主动触发发生中止,复位守时器计数器或中止计数器,履行的动作由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)来区别中止类型。下图是守时器中止与向量中止操控器(V%&&&&&%)的联系
1.匹配中止
LPC2103守时器溢出不会发生中止,但匹配能够发生中止。每个守时器都有4个匹配寄存器,寄存匹配值。当守时器的计数值TC等于MR时,就能够发生中止。切寄存器TnMCR操控匹配中止的使能。下图便是以守时器0为例的匹配中止阐明:
2.捕获中止
当守时器的捕获引脚CAP上呈现特定捕获信号时,能够发生中止。下图以CAP0.0为例阐明:
以上便是守时器0和守时器1的全部内容了,感觉LPC2103的守时器仍是蛮强壮的。下来做个简易的频率计稳固这节的常识。
参阅《EasyARM2103教材》