第04章-2、定时器_第1页
第04章-2、定时器_第2页
第04章-2、定时器_第3页
第04章-2、定时器_第4页
第04章-2、定时器_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LOGO第四章 LPC1700系列处理器基本接口技术4.2 定时器LPC1700定时器特性LPC1700系列芯片具有4个32位可编程定时/计数器。时器对外设时钟(PCLK)周期或外部时钟进行计数,可选择产生中断或根据匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。捕获输入用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。 4个定时器可用做对内部事件进行计数的间隔定时器,或者通过捕获输入实现脉宽调制,也可以作为自由运行的定时器。 4个定时器除了外设基地址以外,其它功能都相同。 定时器应用场合对内部事件计数的内部计数器通过捕获输入实现脉冲宽度调制器普通定

2、时器定时器引脚功能描述引脚类型功能描述CAP01:0CAP11:0CAP21:0CAP31:0输入捕获信号捕获信号 捕获管脚的跳变可配置为将定时器值装入一个捕获寄存器,并可选择产生一个中断。可选择多个管脚用作捕获功能,当有多个管脚被选择用作一个TIMER0/1 通道的捕获输入时,使用编号最小的管脚。MAT01:0MAT12:0MAT23:0MAT33:0输出外部匹配输出外部匹配输出 0/1 当匹配寄存器0/1(MR3:0)等于定时器计数器(TC)时,该输出可翻转,变为低电平、变为高电平或不变。外部匹配寄存器(EMR)控制该输出的功能。可选择多个管脚并行用作匹配输出功能。定时器寄存器功能描述中断

3、寄存器(T0/1/2/3IR) 中断寄存器包含4个位用于匹配中断,4个位用于捕获中断。如果有中断产生,IR中的对应位会置位,否则为0。向对应的IR位写入1复位中断,写入0无效。定时器寄存器功能描述定时器控制寄存器(T0/1/2/3CR) 计数控制器(T0/1/2/3CTCR)该寄存器用来选择定时器或计数器模式,计数器模式下选择计数的管脚和边沿。 定时器寄存器功能描述当选择工作在计数器模式时,在每个PCLK时钟的上升沿对CAP输入(由CTCR位3:2选择)进行采样。比较完CAP输入的2次连续采样结果后,可以识别下面四个事件中的一个:上升沿、下降沿、任一边沿或选择的CAP输入的电平无变化。只要识别

4、到的事件与 CTCR寄存器中位1:0选择的事件相对应时,定时器计数器寄存器加1。 计数器的外部时钟源的操作受到一些限制。由于PCLK时钟的2个连续的上升沿用来识别CAP选择输入的一个边沿,所以CAP输入的频率不能大于1/2个PCLK时钟。因此,这种情况下同一CAP输入的高/低电平持续时间不能小于1/(2*PCLK)。定时器寄存器功能描述定时器计数器寄存器(T0/1/2/3TC) 当预分频计数器到达计数的上限时,32 位定时器计数器加1。如果TC在到达计数上限之前没有被复位,它将一直计数到0 xFFFFFFFF然后翻转到0 x00000000。该事件不会产生中断。如果需要,可用匹配寄存器检测溢出

5、。思考:如果定时器工作在定时器模式,PCLK频率为10MHz,定时器可产生的最长时间间隔是多少?定时器寄存器功能描述预分频寄存器(T0/1/2/3PR) 32 位预分频寄存器指定预分频计数器的最大值。TC每经过PR+1个PCLK加1。 预分频计数器寄存器(T0/1/2/3PC) 预分频计数器使用某个常量来控制PCLK的分频。预分频计数器每个PCLK周期加1,当其到达预分频寄存器PR中保存的值时,定时器计数器TC加1,预分频计数器PC在下个PCLK周期复位。这样就使得当PR=0时,每个PCLK周期TC加1,当PR=1时,每两个PCLK周期TC加1,以此类推。定时器寄存器功能描述匹配寄存器(MR0

6、-MR3)匹配寄存器值连续与定时器计数值相比较。当两个值相等时自动触发相应动作(产生中断,复位定时器计数器或停止定时器)。具体执行什么动作由MCR寄存器控制。寄存器地址详见表5.25。 匹配控制寄存器(T0/1/2/3MCR-0 xE0004014,0 xE0008014,0 xE0070014,0 xE0074014) 定时器寄存器功能描述捕获寄存器(CR0-CR3) 每个捕获寄存器都与一个器件管脚相关联。当管脚发生特定的事件时,可将定时器计数值装入该寄存器。捕获控制寄存器的设定决定捕获功能是否使能以及捕获事件在管脚的上升沿、下降沿或是双边沿发生。寄存器地址详见表5.25。 捕获控制寄存器(

7、T0/1/2/3CCR-0 xE0004028,0 xE0008028,0 xE0070028,0 xE0074028) 当发生捕获事件时,捕获控制寄存器用于控制将定时器计数值是否装入4个捕获寄存器中的一个以及是否产生中断。同时设置上升沿和下降沿位也是有效的配置,这样会在双边沿触发捕获事件。 定时器寄存器功能描述外部匹配寄存器(T0/1/2/3EMR-0 xE000403C,0 xE000803C,0 xE007003C,0 xE007403C) 外部匹配寄存器提供外部匹配管脚MAT0-3的控制和状态 。定时器应用举例定时器寄存器相关宏定义为了方便用户使用定时器相关寄存器,在头文件中定义了定时

8、器寄存器的结构体类型以及4个定时器的结构体指针宏。typedef struct /结构体中寄存器的安排严格按照寄存器地址的先后顺序 各寄存器定义 LPC_TIM_TypeDef;/APB1与APB2总线基地址宏定义#define LPC_APB0_BASE (0 x40000000UL)#define LPC_APB1_BASE (0 x40080000UL)/定时器T0-T3基地址宏定义#define LPC_TIM0_BASE (LPC_APB0_BASE + 0 x04000)#define LPC_TIM1_BASE (LPC_APB0_BASE + 0 x08000)#define

9、LPC_TIM2_BASE (LPC_APB1_BASE + 0 x10000)#define LPC_TIM3_BASE (LPC_APB1_BASE + 0 x14000)/定时器T0-T3结构体指针宏定义#define LPC_TIM0 (LPC_TIM_TypeDef *) LPC_TIM0_BASE )#define LPC_TIM1 (LPC_TIM_TypeDef *) LPC_TIM1_BASE )#define LPC_TIM2 (LPC_TIM_TypeDef *) LPC_TIM2_BASE )#define LPC_TIM3 (LPC_TIM_TypeDef *) LP

10、C_TIM3_BASE )定时器应用举例用查询方式使用定时器用查询方式使用定时器可以提供非常准确的延时时间。但在该方式中处理器被独占,系统效率低,所以在实际应用中不宜大量使用这种方式。函数delayMs使用定时器0或1产生毫秒级的延时。函数共有两个参数:timer_num为定时器序号,delayInMs为延时时间,单位为毫秒。由于定时器时钟由Fpclk提供,当预分频寄存器PR设为0时,计数Fpclk个时钟周期为1秒。所以延时要以毫秒为基本单位就可以设置MR寄存器为Fpclk/1000的整数倍。对Fpclk的设置请参阅系统时钟设置相关章节。定时器应用举例中断方式使用定时器 在实际应用中一般要求处

11、理器间隔固定时间作相应处理,如定时读取外部数据或刷新数码管显示等等。这时使用定时器中断功能就非常有必要。而且在这种方式下定时器与处理器可以并行工作,等计数完成定时器通过中断通知处理器转而执行中断服务程序。这样的使用方式可以提高系统的效率。程序首先要初始化使用的定时器,init_timer()函数执行内容包括设置定时器的匹配寄存器MRn和匹配控制寄存器MCRn,还有安装定时器中断服务函数等。该函数有两个参数:timer_num为初始化定时器序号,TimerInterval为Fpclk周期数也即定时器中断间隔时间。看门狗功能使用看门狗(WD,Watchdog)是在系统进入错误状态后,为了防止系统死

12、机,在一段合理时间内复位系统。看门狗使能后,如果用户软件在看门狗预设的时间内没有“喂狗”(或叫重装)看门狗定时器,系统将被复位。 特性带内部预分频器的可编程32位定时器; 可选择WDCLK4倍数的时间周期:从(WDCLK2564)到(WDCLK2324)。 看门狗时钟看门狗时钟模块使用两个时钟源:PCLK和WDCLK。PCLK被APB总线使用来访问看门狗寄存器;WDCLK被看门狗定时器用作计数时钟。 看门狗时钟WDCLK可以选择RTC时钟、内部RC晶振或APB总线设备时钟PCLK。这样系统可以根据不同省电环境的要求选择看门狗使用的时钟源。而且看门狗定时器在使用内部时钟源时不需要外部晶振,可以提

13、高系统的可靠性。 看门狗操作设置WDTC寄存器设定看门狗重装常数;通过WDMOD寄存器设定工作模式;通过向WDFEED寄存器先写0 xAA后写0 x55序列使能看门狗;看门狗应该在计数器下溢出前重新装入常数,避免复位或中断发生。当看门狗计数器下溢后将重新从0 x0开始,这与外部复位时情况相同。看门狗超时标志位WDTOF可以用于检测判断看门狗是否引起了复位条件。WDTOF标志必须使用软件清除。 看门狗结构寄存器描述看门狗模式寄存器(WDMOD)一旦WDEN和/或WDRESET位设置,就无法使用软件将其清零。这两个标志由外部复位或看门狗定时器溢出清零。WDTOF位当看门狗发生超时,看门狗超时标志置

14、位。该标志由软件清零。WDINT位当看门狗发生超时,看门狗中断标志置位。产生的任何复位都会使该位清零。 寄存器描述看门狗定时器常数寄存器(WDTC) WDTC寄存器决定看门狗超时值。当喂狗时序产生时,WDTC的内容重新装入看门狗定时器。它是一个32位寄存器,低8位在复位时设置为1。写入一个小于0 xFF的值会使0 xFF装入WDTC,因此超时的最小时间间隔为WDCLK2564。 寄存器描述看门狗喂狗寄存器(WDFEED)向该寄存器写入0 xAA,然后写入0 x55会使WDTC的值重新装入看门狗定时器。如果看门狗通过WDMOD寄存器使能,该操作还将启动看门狗运行。置位WDMOD中的WDEN位不足

15、以使能看门狗。在看门狗能够产生中断/复位之前,必须完成一次有效的喂狗时序。否则,看门狗将忽略喂狗错误。向WDFEED寄存器写入0 xAA的下一个操作应当是向WDFEED寄存器写入0 x55,除非看门狗被触发。在一个喂狗时序中,一次对看门狗定时器寄存器不正确的访问之后第二个PCLK周期将产生中断/复位。 如果应用程序开启了其它中断,为了保证喂狗操作的原子性(不可分割),在喂狗之前要关闭中断,喂狗之后再开中断。 寄存器描述看门狗定时器值寄存器(WDTV) WDTV寄存器用于读取看门狗定时器的当前值。当读出该数值时,锁定和同步的过程需要6个WDCLK和6个PCLK周期,所以WDTV寄存器的真实值比CPU读取出来的值要旧一些。看门狗时钟源选择寄存器(WDCLKSEL) 该寄存器允许选择看门狗定时器的时钟源。可能的选择有:内部RC晶振(IRC),RTC晶振,APB总线外设时钟(PCLK)。看门狗操作举例 看门狗的应用较灵活,可以选择看门狗超时仅产生中断或产生系统复位中断。当系统只需看门狗产生中断时只设置WDEN位即可,一旦置位WDEN则只有通过系统复位才能复位WDEN位。WDRESET位用于设置看门狗复位定时器还是复位系统。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论