1.22k likes | 1.34k Views
5.14 定时器 0 和定时器 1. 第 5 章 目录. 1. 简介 2. 引脚配置 3. 存储器寻址 4. 系统控制模块 5. 存储器加速模块 6. 外部存储器控制器 7. 引脚连接模块 8. 向量中断控制器 9.GPIO. 10.UART0 11.UART1 12.I 2 C 接口 13.SPI 接口 14. 定时器 0/1 15. 脉宽调制器( PWM ) 16.A/D 转换器 17. 实时时钟 18. 看门狗. 5.14 定时器 0/1. 特性.
E N D
第5章 目录 • 1.简介 • 2.引脚配置 • 3.存储器寻址 • 4.系统控制模块 • 5.存储器加速模块 • 6.外部存储器控制器 • 7.引脚连接模块 • 8. 向量中断控制器 • 9.GPIO • 10.UART0 • 11.UART1 • 12.I2C接口 • 13.SPI接口 • 14.定时器0/1 • 15.脉宽调制器(PWM) • 16.A/D转换器 • 17.实时时钟 • 18.看门狗
5.14 定时器0/1 • 特性 • LPC2000系列“微控制器”具有两个功能强大的定时器,它们具有以下特性: • 具有32位可编程预分频器; • 多达4路捕获通道,可设置被捕获信号的特征; • 4个32位匹配寄存器,可设置匹配发生后的动作; • 4个对应于匹配寄存器的外部输出,可设置匹配输出的信号特征。
LPC2000 CAP MAT 5.14 定时器0/1 • 应用 用于对内部事件进行计数的间隔定时器,或着产生系统节拍 捕获外部信号 匹配输出
Tx定时器 信号过滤 捕获控制寄存器 捕获寄存器 • 定时器引脚描述 多个引脚作为捕获功能时,对输入信号相或处理 如果输入信号满足设定的要求,将触发捕获动作
信号输出 = Tx定时器 信号输出 = 匹配控制寄存器 匹配寄存器 • 定时器引脚描述 当定时器值等于预设的匹配值时,从引脚输出特定的信号
5.14 定时器0/1 • 寄存器描述 • LPC2000微控制器中与定时器相关的寄存器数量较多,但可以分为三类: • 基本功能相关寄存器; • 匹配功能相关寄存器; • 捕获功能相关寄存器;
TxPR TxTCR 预分频寄存器 定时器控制 Fpclk 预分频计数器 定时器计数器 中断标志寄存器 TxPC TxTC TxIR • 寄存器描述 ——基本功能寄存器
TxPR TxPR TxTCR TxTCR 预分频寄存器 预分频寄存器 定时器控制 定时器控制 Fpclk Fpclk 预分频计数器 预分频计数器 定时器计数器 定时器计数器 中断标志寄存器 中断标志寄存器 TxPC TxPC TxTC TxTC TxIR TxIR • 寄存器描述 ——基本功能寄存器 TxPR TxPR寄存器为32为寄存器,该寄存器指定了预分频计数器的最大值。
TxPR TxTCR 预分频寄存器 定时器控制 Fpclk 预分频计数器 定时器计数器 中断标志寄存器 TxPC TxTC TxIR • 寄存器描述 ——基本功能寄存器 TxPR TxPC TxPC寄存器为32为寄存器。预分频计数器每个pclk周期加1。当其到达预分频寄存器中保存的值时,定时器计数器加1,预分频计数器在下个pclk周期复位。这样,当PR=0时,定时器计数器每个pclk周期加1,当PR=1时,定时器计数器每2个pclk周期加1。
TxPR TxTCR 预分频寄存器 定时器控制 Fpclk 预分频计数器 定时器计数器 中断标志寄存器 TxPC TxTC TxIR • 寄存器描述 ——基本功能寄存器 TxPR TxTCR 定时器控制寄存器TCR用于控制定时器计数器的操作。
TxPR TxTCR 预分频寄存器 定时器控制 Fpclk 预分频计数器 定时器计数器 中断标志寄存器 TxPC TxTC TxIR • 寄存器描述 ——基本功能寄存器 TxPR TxTC 当预分频计数器到达计数的上限时,定时器计数器寄存器(TxTC)加1。TC从0x00000000计数一直到0xFFFFFFFF,然后翻转至0,除非中途被复位。计数值翻转不会引起中断。
TxPR TxTCR 预分频寄存器 定时器控制 Fpclk 预分频计数器 定时器计数器 中断标志寄存器 TxPC TxTC TxIR • 寄存器描述 ——基本功能寄存器 TxPR TxIR 中断寄存器包含4个位用于匹配中断,另外4个位用于捕获中断。如果有中断产生,IR中的对应位会置位。向对应的IR位写入1会复位中断,写入0无效。
匹配控制 匹配值 定时器计数器 MCR MR0~MR3 TC 匹配输出 EMR • 寄存器描述 ——匹配功能寄存器
匹配控制 匹配控制 匹配值 匹配值 定时器计数器 定时器计数器 MCR MCR MR0~MR3 MR0~MR3 TC TC 匹配输出 匹配输出 EMR EMR • 寄存器描述 ——匹配功能寄存器 MCR 匹配控制寄存器用于控制在发生匹配时所执行的操作。
匹配控制 匹配值 定时器计数器 MCR MR0~MR3 TC 匹配输出 EMR • 寄存器描述 ——匹配功能寄存器 MR0~MR3 匹配寄存器(MR0~MR3)值与定时器计数值相比较,当两个值相等时自动触发在MCR寄存器中设置的动作。
匹配控制 匹配值 定时器计数器 MCR MR0~MR3 TC 匹配输出 EMR • 寄存器描述 ——匹配功能寄存器 EMR 外部匹配寄存器提供外部匹配管脚MATn.0~MATn.3(n为0或1)的控制和状态。
匹配控制 匹配值 定时器计数器 MCR MR0~MR3 TC 匹配输出 EMR • 寄存器描述 ——匹配功能寄存器 EMR
定时器计数器 TC 捕获控制 捕获寄存器 CR0~CR3 CCR • 寄存器描述 ——捕获功能寄存器
定时器计数器 定时器计数器 TC TC 捕获控制 捕获控制 捕获寄存器 捕获寄存器 CR0~CR3 CR0~CR3 CCR CCR • 寄存器描述 ——捕获功能寄存器 CCR 在发生捕获事件时,捕获控制寄存器用于控制是否将定时器计数值装入寄存器。同时还可以设置被捕获信号的特征。
定时器计数器 TC 捕获控制 捕获寄存器 CR0~CR3 CCR • 寄存器描述 ——捕获功能寄存器 CCR
定时器计数器 TC 捕获控制 捕获寄存器 CR0~CR3 CCR • 寄存器描述 ——捕获功能寄存器 CR0~CR3 每个捕获寄存器都与一个或几个器件管脚相关联。当管脚发生特定的事件时,可将定时器计数值装入该寄存器。捕获控制寄存器的设定决定捕获功能是否使能,以及捕获事件在管脚的上升沿、下降沿或是双边沿发生。
5.14 定时器0/1 • 使用定时器的注意要点 • 定时计数器(TC)本身不能产生中断,只有与匹配寄存器发生匹配后才能引起中断事件; • 在定时器匹配发生后,可以不停止定时器工作,而动态修改匹配寄存器的值; • 定时器使用匹配功能的同时,还可以使用捕获功能,而不必分时使用; • 定时器计数时钟频率 = Fpclk / (PR+1)
定时器操作示例 定时器设置为匹配时复位计数器并产生中断。预分频设置为2,匹配寄存器设置为6。在发生匹配的定时器周期结束时,定时器计数值复位。这样就使匹配值具有完整长度的周期。 预分频计数器计数频率为PCLK 定时器计数器计数频率为PCLK/3 最后一个周期复位定时器计数器 产生匹配中断 PR=2, MRx=6, 匹配时使能中断和复位
计算定时器的 计数频率 设置匹配值及 工作模式 设置捕获方式 设置定时器中断 VIC 启动定时器 TCR • 定时器操作示例 操作流程
操作流程 操作流程 计算定时器的 计数频率 计算定时器的 计数频率 设置匹配值及 工作模式 设置匹配值及 工作模式 定时器设置为0 设置预分频值 设置捕获方式 设置捕获方式 设置匹配模式,复位并中断 设置匹配值,0.1S 启动定时器0 设置定时器中断 VIC 设置定时器中断 VIC 启动定时器 TCR 启动定时器 TCR • 定时器操作示例 ——定时器0初始化 C代码: Void Time0Init(void) { T0TC = 0; T0PR = 0; T0MCR = 0x03; T0MR0 = Fpclk / 10; T0TCR = 0x01; }
LPC2000 V t time 定时器设置为0 设置预分频值 等待引脚电平变低 启动定时器0 等待引脚电平变高 关闭定时器0 读取定时器值,即为脉宽 • 定时器操作示例 ——用定时器测量脉冲宽度 P0.0 C代码: ... T0TC = 0; T0PR = 0; while((IO0PIN & 0x01) != 0); T0TCR = 0x01; while((IO0PIN & 0x01) == 0); T0TCR = 0x00; time = T0TC; ...
定时器设置为0 设置预分频值 设置匹配后复位TC 设置匹配后MAT0.1输出翻转 输出频率周期控制 启动定时器0 设置引脚连接模块 • 定时器操作示例 ——匹配输出 将引脚P0.5设置为输出50%的方波,程序设置了MR1匹配后复位定时器,并且MAT0.1输出电平翻转。 C代码: Void MATOut(void) { PINSEL0 = 0x00000800; T0TC = 0; T0PR = 0; T0MCR = 0x01; T0EMR = 0xC0; T0MR1 = 5000; T0TCR = 0x01; }
设置引脚连接模块 设置预分频值为0 设置为下降沿捕获 清零TC 启动定时器 • 定时器操作示例 ——定时器捕获 示例使用定时器对P0.2引脚的信号进行捕获,并设置为下降沿捕获。当有捕获事件产生时自动把定时器的当前值装载到T0CR0寄存器中。 C代码: Void TimeCAP(void) { PINSEL0 = 0x20; T0PR = 0; T0CCR = 0x02; T0TC = 0; T0TCR = 0x01; }
第5章 目录 • 1.简介 • 2.引脚配置 • 3.存储器寻址 • 4.系统控制模块 • 5.存储器加速模块 • 6.外部存储器控制器 • 7.引脚连接模块 • 8. 向量中断控制器 • 9.GPIO • 10.UART0 • 11.UART1 • 12.I2C接口 • 13.SPI接口 • 14.定时器0/1 • 15.脉宽调制器(PWM) • 16.A/D转换器 • 17.实时时钟 • 18.看门狗
5.15 脉宽调制器 选讲内容 • 特性 • LPC2000系列微控制器的脉宽调制器建立在独立的32位标准定时器之上,具有如下特性: • 带可编程32位预分频的32位定时器/计数器; • 7个匹配寄存器,可实现6个单边沿控制或3个双边沿控制PWM输出,或两者的混合输出; • 脉冲周期和宽度可以是任何的定时器计数值; • 匹配寄存器更新与脉冲输出同步,防止产生错误脉冲。
5.15 脉宽调制器 • PWM简介 • LPC2000的PWM基于标准的定时器模块,具有定时器的所有特性,它是定时器功能中匹配事件的功能扩展。使用PWM功能,可以在指定引脚输出需要的波形。输出波形可分为两类: • 单边沿输出; • 双边沿输出。
5.15 脉宽调制器 • PWM简介 ——单边沿输出 使用两个匹配寄存器就可以实现单边沿控制的PWM输出。其中一个匹配寄存器(PWMMR0)控制PWM周期,另一个匹配寄存器控制PWM边沿的位置,即占空比。PWMMR0是所有PWM输出共用的,所以每增加一路PWM输出,实际上只要增加一个控制占空比的匹配寄存器。当PWMMR0发生匹配时,输出都会变成高电平。
T 其它匹配寄存器控制边沿位置 其它匹配寄存器控制边沿位置 5.15 脉宽调制器 • PWM简介 ——单边沿输出 PWMMR0控制PWM周期 所有单边沿输出在周期开始时都为高电平,并在匹配发生前一直保持高电平 不同占空比的单边沿控制PWM输出
5.15 脉宽调制器 • PWM简介 ——双边沿输出 实现双边沿输出需要3个匹配寄存器进行控制。其中PWMMR0用于控制PWM周期,其它两个匹配寄存器分别控制PWM输出的前沿和后沿的位置。与单边沿输出一样,PWMMR0是所有输出共用的,所以每增加一路双边沿输出,需要增加两个匹配控制寄存器。
T 其它匹配寄存器控制边沿位置 其它匹配寄存器控制边沿位置 5.15 脉宽调制器 • PWM简介 ——双边沿输出 PWMMR0控制PWM周期 双边沿控制PWM输出正负脉冲
5.15 脉宽调制器 • PWM简介 ——PWM输出触发关系 举例说明:使用PWM通道5输出时。 如果为单边沿输出,那么匹配0事件置位输出引脚,匹配5事件复位输出引脚。如果为双边沿输出,那么匹配4事件置位输出引脚,匹配5事件复位输出引脚。
5.15 脉宽调制器 • PWM引脚描述
5.15 脉宽调制器 • PWM寄存器描述 • PWM模块的控制寄存器数量较多,但是因为它是建立在标准定时器的基础上,所以一部分寄存器功能与定时器功能类似。所有寄存器大致可以分为两类: • 基本功能寄存器 • 匹配控制寄存器
PWMPR PWMTCR 预分频寄存器 定时器控制 Fpclk 预分频计数器 定时器计数器 中断标志寄存器 PWMPC PWMTC PWMIR • PWM寄存器描述 ——基本功能寄存器 大部分寄存器的功能与定时器部件相同,所以仅介绍与之不同的地方
PWMPR PWMPR PWMTCR PWMTCR 预分频寄存器 预分频寄存器 定时器控制 定时器控制 Fpclk Fpclk 预分频计数器 预分频计数器 定时器计数器 定时器计数器 中断标志寄存器 中断标志寄存器 PWMPC PWMPC PWMTC PWMTC PWMIR PWMIR • PWM寄存器描述 ——基本功能寄存器 PWMTCR PWM定时器控制寄存器TCR用于控制定时器计数器的操作。
PWMPR PWMTCR 预分频寄存器 定时器控制 Fpclk 预分频计数器 定时器计数器 中断标志寄存器 PWMPC PWMTC PWMIR • 寄存器描述 ——基本功能寄存器 PWMIR 中断寄存器包含11个位。其中7个位用于匹配中断,其它的位保留。中断发生时,对应位将被置一。向对应的IR位写入1会复位中断,写入0无效。
匹配寄存器 映像寄存器 定时器计数器 PWMMRx PWMTC PWM输出 匹配控制 锁存使能 PWM控制 PWMMCR PWMLER PWMPCR • PWM寄存器描述 ——匹配功能寄存器
匹配寄存器 匹配寄存器 映像寄存器 映像寄存器 定时器计数器 定时器计数器 PWMMRx PWMMRx PWMTC PWMTC PWM输出 PWM输出 匹配控制 匹配控制 锁存使能 锁存使能 PWM控制 PWM控制 PWMMCR PWMMCR PWMLER PWMLER PWMPCR PWMPCR • PWM寄存器描述 ——匹配功能寄存器 PWMMCR
匹配寄存器 映像寄存器 定时器计数器 PWMMRx PWMTC PWM输出 匹配控制 锁存使能 PWM控制 PWMMCR PWMLER PWMPCR • PWM寄存器描述 ——匹配功能寄存器 PWMMRx PWM匹配寄存器值连续与PWM定时器计数值相比较。当这两个值相等时自动触发相应动作。这些动作包括产生中断、复位PWM定时器计数器或停止定时器。
匹配寄存器 映像寄存器 定时器计数器 PWMMRx PWMTC PWM输出 匹配控制 锁存使能 PWM控制 PWMMCR PWMLER PWMPCR • PWM寄存器描述 ——匹配功能寄存器 PWMLER PWM锁存使能寄存器用于控制PWM匹配寄存器的更新。 在产生PWM时,为了保证一个周期的完整,在更改PWM匹配寄存器之后,并不能立即生效。而是在MR0发生匹配并且PWMLER中的相应位置位时才能使修改值生效。
匹配寄存器 映像寄存器 定时器计数器 PWMMRx PWMTC PWM输出 匹配控制 锁存使能 PWM控制 PWMMCR PWMLER PWMPCR • PWM寄存器描述 ——匹配功能寄存器 PWMLER
匹配寄存器 映像寄存器 定时器计数器 PWMMRx PWMTC PWM输出 匹配控制 锁存使能 PWM控制 PWMMCR PWMLER PWMPCR • PWM寄存器描述 ——匹配功能寄存器 PWMPCR PWM匹配控制寄存器用于使能并选择每个PWM通道的类型。
PWM寄存器描述 ——匹配功能寄存器
5.15 脉宽调制器 • 使用PWM的注意要点 • 修改匹配寄存器之后,必须设置锁存使能寄存器中的相应位,否则匹配寄存器的值不能生效; • 修改匹配寄存器时,不需要停止PWM定时器,以免产生无完整的PWM波形; • 不使用PWM功能时,可将该部件作为一个标准的32位定时器使用; • PWMTC计数频率= Fpclk / (PWMPR+1)