当前位置:首页 >> 信息与通信 >>

【Timer】LPC1700系列Cortex-M3_ZLG_图文

定时器/计数器
LPC1700系列Cortex-M3微控制器





1
2

定时器/计数器概述

定时器/计数器内部结构

3 4

定时器/计数器功能描述

定时器/计数器应用方案

定时器/计数器概述
什么是定时器/计数器?
? 本质上都是加法计数器; ? 定时器是用来对固定周期的脉冲信号计 数,如CPU内部的外设时钟(PCLK);

时钟

? 计数器可以对脉冲长度不确定的信号
进行计数,如微处理器外部I/O引脚的 脉冲信号。

定时器/计数器概述
?

4个32位可编程定时器/计数器,带有32位预分频器
4个定时器/计数器均具有捕获、匹配功能 每路最少有2个捕获输入和2个匹配输出,引脚可配置

特性

? ?

应用:
数字频率计 智能家用电器 定时控制设备





1
2

定时器/计数器概述

定时器/计数器内部结构
定时器/计数器功能描述

3

4

定时器/计数器应用方案

内部结构
匹配功能模块
匹配寄存器T(0~3)MRn
匹配 输出 中断标志寄存器(TnIR)

匹配控制寄存器TnMCR 外部匹配寄存器TnEMR

比 较 器

定 时 器 计 数 值
定时器计数器TnTC

捕获功能模块
捕获寄存器T(0~3)CRn

捕获控制寄存器TnCCR

捕获/计数输入

0x0000 0000
复位 定时器控制寄存器TnTCR 使能

选择定时还是 计数功能

预分频器(TnPR、TnPC)

计数器控制寄存器(TnCTCR)

计数功能模块

PCLK

注意:n = 0、1、2、3





1
2

定时器/计数器概述

定时器/计数器内部结构
定时器/计数器功能描述

3
4

定时器/计数器应用方案

计数功能模块
1. 预分频器
定时器/计数器带有一个 32位可编程预分频器,PC每 经过PR+1个PCLK周期TC就 加1。
0x0000 0000
复位

定时器计数器TC 定时器计数器TnTC 0x00000001 0x00000000

预分频计数器PC 预分频器(TnPR、TnPC)
定时器 控制 使能 寄存器 TnTCR

计数器 控制 寄存器 TnCTCR

0x00000003 0x00000002 0x00000001 0x00000000
选择定时还是 计数功能 CAP[…]

计数输入

PCLK

输入到计数器模块的信号 频率被降低,因此定时器/计数 器的计数范围大大增加。

预分频寄存器设置:
PR = 0x03; // 设预分频器;

计数功能模块
2. 计数外部脉冲
在计数器模式时,用户可 以选择是在输入脉冲的上升沿、 下降沿或者是边沿,实现对外 部脉冲信号进行计数。
复位 预分频器(TnPR、TnPC) 预分频寄存器PR = 0 定时器 控制 使能 寄存器 TnTCR
CAP[…] CAPn.0

0x0000 0000

定时器计数器TC 定时器计数器TnTC 0x00000002 0x00000001 0x00000000 0x00000004 0x00000003

计数器 模式 控制 寄存器 边沿 TnCTCR

计数

计数

选择定时还是 计数功能

计数外部脉冲初始化:
T0TCR = 0x02;

计数输入

PCLK

T0CTCR = (0x03 << 0)| (0x00 << 2);

在每个外部输入信号上升沿和下降沿时计数器都加1

T0PR

=

0x00;

思考:
外部计数的频率有上限值吗?上限值是多少?

计数功能模块
当计数器计数外部时钟时,由于PCKL时钟是上升沿采样外部 脉冲信号,因此需要连续的两个采样时钟信号才能判断出一个边 沿的类型。 PCLK

频率小于FPCLK / 2 采样结果为0 采样结果为1

两次采样的时间间隔内,外部脉冲只有一个 边沿,采样值由0到1,所以识别为上升沿。

计数功能模块
当计数器计数外部时钟时,由于PCKL时钟是上升沿采样外部 脉冲信号,因此需要连续的两个采样时钟信号才能判断出一个边 沿的类型。 PCLK 频率大于FPCLK / 2

没有采样到

两次采样的时间间隔内,外部脉冲有2个边沿,计数出错。

注意

匹配功能模块
定时器/计数器的当前 计数值等于用户设定的
匹配 输出
定时控制 寄存器

使能

匹配时输出电平翻转 外部匹配寄存器TnEMR
不执行任何动作 匹配时产生中断,TC复位 匹配控制寄存器TnMCR 匹配输出设置为0 匹配时产生中断 匹配输出设置为1 定时器0匹配值为10 匹配寄存器T(0~3)MRn 匹配时将TC复位 匹配输出电平翻转
匹配时将使TC和PC停止, TCR的位0清零

“匹配值”时,根据相应
设置,触发外部某个功能 匹配输出,同时也可以产 生中断信号。

比 较 器

定 时 TC 器 计 5 6 7 8 10 9 1 2 0 4 3 数 值

匹配的功能演示
匹配功能初始化:

中断标志寄存器(TnIR)

T0MR0 = 10;
T0MCR = 0x03; T0EMR = 0x30;

捕获功能模块
当定时器/计数器运行 时,在捕获引脚上,出现有
使能

定时控制 寄存器

中断标志寄存器(TnIR)
捕获引脚

效外部触发动作,此时定时
器计数器的当前值保存到指 定捕获寄存器中。 捕获

定 时 TC 器 计 5 6 1 2 0 3 4 数 值

捕获寄存器T(0~3)CRn 捕获TC值,T0CR0=6 捕获控制寄存器TnCCR 上升沿捕获,产生中断 CAPn.0(1/2/3)上升沿捕获 CAPn.0(1/2/3)下降沿捕获
捕获输入

CAPn.0(1/2/3)事件中断

捕获功能初始化: T0CCR = 0x05;

注意: 同一捕获通道的对应引脚可能有几个,当 选择多个引脚用作捕获通道时,仅序号最低的 引脚有效。

功能模块小结
本节要点:
计数PCLK,即定时器模式

计数 定 时 器 / 计 数 器

预分频器控制器

计数外部脉冲,即计数器模式 匹配时对定时器/计数器进行操作

匹配

匹配时可选择触发匹配中断 匹配时可选择触发外部输出动作 捕获时当前定时器计数器值被保存

捕获

捕获时,可选择触发捕获中断
触发捕获的信号边沿类型可选择 (上升沿,下降沿,双边沿)





1
2

定时器/计数器概述

定时器/计数器内部结构
定时器/计数器功能描述

3
4

定时器/计数器应用方案

应用方案
定 时 器 实 现 秒 脉 冲 输 出
1. 根据定时时间,计算出匹配值MR

2. 定时器初始化
定时器/计数器工作模式配置 匹配控制寄存器设置 中断功能服务函数设置 启动定时器使能

应用方案
定时器0初始化:
void Time0Init(void) { T0TCR = 0x02; T0IR = 1; T0CTCR = 0; T0TC = 0; T0PR = 0; T0MR0 = FPCLK; T0MCR = 0x03; zyIsrSet(NVIC_TIMER0, (INT32U)timer0Isr, PRIO_TWO); T0TCR = 0x01;
}

/* /* /* /* /* /* /*

定时器不使能,定时器复位 清除匹配通道0的中断标志 定时器模式 计数器清零 定时器时钟不分频 1s中断一次 匹配后产生中断,TC值复位

*/ */ */ */ */ */ */ */

/* 设置中断并使能

/* 启动定时器

*/

应用方案
3. 定时器中断服务函数每隔1秒执行LED亮灭操作

中断服务函数:
void timer0Isr(void) { T0IR = 0x01; LEDON(); DelayMS(400); LEDOFF(); }

/* 清除中断标志 /* LED灯亮 /* 延时400ms /* LED灯灭

*/ */ */ */


相关文章:
【Timer】LPC1700系列Cortex-M3_ZLG_图文.ppt
【Timer】LPC1700系列Cortex-M3_ZLG - 定时器/计数器
【USB】LPC1700系列Cortex-M3_ZLG_图文.ppt
【USB】LPC1700系列Cortex-M3_ZLG - 通用串行接口(USB
【ETHERNET】LPC1700系列Cortex-M3_ZLG_图文.ppt
【ETHERNET】LPC1700系列Cortex-M3_ZLG_工程科技_专业
【UART】LPC1700系列Cortex-M3_ZLG_图文.ppt
【UART】LPC1700系列Cortex-M3_ZLG_电子/电路_工程科技_
【I2S】LPC1700系列Cortex-M3_ZLG_图文.ppt
【I2S】LPC1700系列Cortex-M3_ZLG - 集成电路内置音频总线
【RTC】LPC1700系列Cortex-M3_ZLG_图文.ppt
【RTC】LPC1700系列Cortex-M3_ZLG - 实时时钟(RTC)
【WDT】LPC1700系列Cortex-M3_ZLG_图文.ppt
【WDT】LPC1700系列Cortex-M3_ZLG - 看门狗定时器(WDT
【CAN】LPC1700系列Cortex-M3_ZLG1_图文.ppt
【CAN】LPC1700系列Cortex-M3_ZLG1 - CAN控制器 LP
【ADC】LPC1700系列Cortex-M3_ZLG1_图文.ppt
【ADC】LPC1700系列Cortex-M3_ZLG1_信息与通信_工程科技_
【I2C】LPC1700系列Cortex-M3_ZLG1_图文.ppt
【I2C】LPC1700系列Cortex-M3_ZLG1_信息与通信_工程科技_
【CAN】LPC1700系列Cortex-M3_ZLG_图文.ppt
【CAN】LPC1700系列Cortex-M3_ZLG - CAN控制器 LPC
【QEI】LPC1700系列Cortex-M3_ZLG1_图文.ppt
【QEI】LPC1700系列Cortex-M3_ZLG1_信息与通信_工程科技_
【QEI】LPC1700系列Cortex-M3_ZLG_图文.ppt
【QEI】LPC1700系列Cortex-M3_ZLG - 正交编码器接口(QE
【ETHERNET】LPC1700系列Cortex-M3_ZLG1_图文.ppt
【ETHERNET】LPC1700系列Cortex-M3_ZLG1_信息与通信_
【SPI】LPC1700系列Cortex-M3_ZLG_图文.ppt
【SPI】LPC1700系列Cortex-M3_ZLG - 同步串行外设接口(S
【ADC】LPC1700系列Cortex-M3_ZLG_图文.ppt
【ADC】LPC1700系列Cortex-M3_ZLG - A/D转换器 转换器
【I2C】LPC1700系列Cortex-M3_ZLG_图文.ppt
【I2C】LPC1700系列Cortex-M3_ZLG - 芯片间串行传输总线(
【RIT】LPC1700系列Cortex-M3_ZLG_图文.ppt
【RIT】LPC1700系列Cortex-M3_ZLG - 重复中断定时器(RI
【WDT】LPC1700系列Cortex-M3_ZLG1_图文.ppt
【WDT】LPC1700系列Cortex-M3_ZLG1_信息与通信_工程科技_
【I2C】LPC1700系列Cortex-M3_ZLG_图文.ppt
【I2C】LPC1700系列Cortex-M3_ZLG - 芯片间串行传输总线(
更多相关标签: