06-笔记:LPC1788-定时器

概述

LPC178x/177x 系列 Cortex-M3 拥有 4 个 32 位可编程定时器/计数器,均具有捕获、比较匹 配功能。定时器用来对外设时钟(PCLK)进行计数,而计数器对外部脉冲信号进行计数,可 以选择在规定的时间处产生中断或执行其它操作,这都由 4 个匹配寄存器的值决定。它也包含 4 个捕获输入,用来在输入信号变化时捕捉定时器的瞬时值,也可以选择产生中断。
注: 4 个定时器 / 计数器,除了外设基址之外其他完全相同。 4 个定时器最少有 2 个捕获输入和 2 个匹配输
出,并且有多个引脚可以选择。定时器 2 引出了全部 4 个匹配输出。

特性

 32 位的定时器/计数器,带有一个可编程的 32 位预分频器;
 计数器或定时器操作;
 每个定时器包含 2 个 32 位的捕获通道,当输入信号变化时捕捉定时器的瞬时值。也可
以选择产生中断;
 4 个 32 位匹配寄存器,允许执行以下操作:
- 匹配时连续工作,在匹配时可选择产生中断;
- 在匹配时停止定时器运行,可选择产生中断;
- 在匹配时复位定时器,可选择产生中断;
 有 4 个与匹配寄存器相对应的外部输出,这些输出具有以下功能:
- 匹配时设为低电平;
- 匹配时设为高电平;
- 匹配时翻转电平;
- 匹配时不执行任何操作。

LPC178x/177x 系列 Cortex-M3 的定时器/计数器功能部件主要由三部分构成:

1. 计数部分

定时器的时钟源可以是 PCLK,对 PCLK 进行分频后,输入计数器,对其进行计数。另外 LPC178x/177x 系列 Cortex-M3 可以对外部的脉冲进行计数,外部脉冲从 CAP 引脚输入。

2. 匹配功能部分

匹配寄存器 0~3 中保存匹配值,当某一个匹配值与当前的计数值匹配时,根据匹配控制寄 存器(MCR)的设置,控制定时器的工作,也可以产生中断信号。当发生匹配时,寄存器 EMR 还会控制对应的匹配引脚 MATn 输出特定的信号。

3. 捕获功能部分

当捕获引脚 CAPn 上出现有效信号(即捕获信号)时,会将计数器的当前值保存到捕获寄 存器 CRn 中,并可产生中断

寄存器描述

1. 中断寄存器 T[0/1/2/3]IR
中断寄存器包含 4 个位用于匹配中断,4 个位用于捕获中断。如果有中断产生,IR 中的对 应位会置位,否则为 0。向对应的 IR 位写入 1 会复位中断。写入 0 无效。清除定时器匹配中断 也会清除对应的 DMA 请求。
LPC_TIM0->IR = 0xff;  /*  清除定时器 0 的全部中断标志 */
 
1
LPC_TIM0->IR = 0xff;  /*  清除定时器 0 的全部中断标志 */
2. 定时器控制寄存器 T[0/1/2/3]TCR
定时器控制寄存器(TCR)用来控制定时器/计数器的操作
LPC_TIM0->TCR = 0x01; /*  启动定时器 0  
1
LPC_TIM0->TCR = 0x01; /*  启动定时器 0  
3. 计数控制寄存器 T[0/1/2/3]CTCR
计数控制寄存器(CTCR)用来在定时器模式和计数器模式之间进行选择,在计数器模式 中选择计数的引脚和边沿
        当选择计数器模式作为工作模式时,在每个 PCLK 时钟的上升沿对 CAP 输入(由 CTCR 的位 3:2 来选择)进行采样。在对这个 CAP 输入的连续两次采样值进行比较之后,可以识别出 下面其中一种事件:上升沿、下降沿、上升/下降沿或所选 CAP 输入的电平不变。如果识别出 的事件与 CTCR 寄存器[1:0]选择的一个事件相对应,定时器计数器寄存器的值将增加 1。
        当计数器计数外部脉冲时,处理的效率会收到一些限制。由于识别 CAP 所选输入的一个边 沿需要使用 PCLK 时钟 2 个连续的上升沿,因此 CAP 输入的频率不能大于 PCLK 频率的二分 之一。所以,在这种情况下同一个 CAP 引脚的高/低电平持续时间不能小于 1/(2PCLK)。
LPC_TIM0->CTCR = ( 0x02 << 0 ) |  /*  计数器,在 CAP 的下降沿递增 TC */
( 0x01 << 2 ); /*  选择 CAP0.1 
 
1
LPC_TIM0->CTCR = ( 0x02 << 0 ) |  /*  计数器,在 CAP 的下降沿递增 TC */
2
( 0x01 << 2 ); /*  选择 CAP0.1 
4. 定时器计数器 T[0/1/2/3]TC
TC(Timer Counter)既是定时器的定时计数器又是外部计数器的计数器,这里简称定时器 计数器
5. 预分频寄存器 T[0/1/2/3]PR
6. 预分频计数器 T[0/1/2/3]PC
7. 匹配寄存器(MR0-MR3)
匹配寄存器值连续与定时器计数值相比较。当两个值相等时自动触发相应动作。这些动作 包括产生中断,复位定时器计数器或停止定时器。所执行的动作由 MCR 寄存器控制。
8. 匹配控制寄存器 T[0/1/2/3]MCR

DMA 操作

每个定时器在 EM0 和 EM1 匹配时(0 到 1 的跳变)都可以引起一个 DMA 请求

定时器中断设置 

LPC178x 系列 Cortex-M3 含有四个 32 位定时器,每个定时器可以产生 8 种类型的中断:4 路匹配中断、2 路捕获中断,可以通过读取中断标志寄存器(TnIR)来区分中断类型
定时器 0 中断占用 NVIC 的通道 17,定时器 1 中断占用 NVIC 的通道 18,定时器 2 中断占 用 NVIC 的通道 19,定时器 3 中断占用 NVIC 的通道 20,中断使能寄存器 ISER 用来控制 NIVC 通道的中断使能。当 ISER0[1]=1 时,通道 17 中断使能,即定时器 0 中断使能;当 ISER0[2]=1 时,通道 18 中断使能,即定时器 1 中断使能;当 ISER0[3]=1 时,通道 19 中断使能,即定时器 2 中断使能;当 ISER0[4]=1 时,通道 20 中断使能,即定时器 3 中断使能。
中断优先级寄存器 IPR 用来设定 NVIC 通道中断的优先级。IPR0[15:11]用来设定通道 17 的优先级,即定时器 0 中断的优先级;IPR0[23:19]用来设定通道 18 的优先级,即定时器 1 中断 的优先级;IPR0[31:27]用来设定通道 19 的优先级,即定时器 2 中断的优先级;IPR1[7:3]用来设定通道 20 的优先级,即定时器 3 中断的优先级

当定时器优先级设定且中断使能后,若发生匹配中断或捕获中断,则会触发中断
LPC178x 系列 Cortex-M3 的定时器可发生捕获中断或匹配中断

1. 匹配中断
定时器计数溢出时不会产生中断,但是匹配时可以产生中断。每个定时器都具有 4 个匹配 寄存器(MR0~MR3),可以用来存放匹配值,当定时器的当前计数值 TC 等于匹配值 MR 时, 就可以产生中断。

2. 捕获中断
当定时器的捕获引脚 CAP 上出现特定的捕获信号时,可以产生中断。


LPC178x 系列 Cortex-M3 的 4 个 32 位定时器,分别具有 2 路捕获、4 路比较匹配,定时器 是增量计数的,但上溢时 不会产生中断标志,而只
能通过比较匹配或捕获输 入产生中断标志
1.初始化

2. 读取定时器值
3. 匹配输出
4. 定时器捕获
5. 作为计数器使用











猜你喜欢

转载自www.cnblogs.com/bog-box/p/LPC1788-TIMER.html