当前位置:首页 >> 其它课程 >>

KL25-ch07(定时器模块)-20130910


第7章 定时器
主要内容: 7.1 计时器/定时器的工作原理 7.2 ARM Cortex-M0+内核时钟 7.3 定时器/PWM模块功能概述及编程结构 7.4 周期性中断定时器 7.5 低功耗定时器 7.6 实时时钟模块 7.7 本章小结

1

7.1 计时器/定时器的工作原理
实现计数与定时的基本方法有三种:完全

硬件方式 、完全软件方式、可编程计数器/定时器。 1.完全硬件方式 使用数字逻辑电路实现,即完全用硬件电路实现计 数/定时功能。缺点:通用性差、灵活性差。 2.完全软件方式 通过编程,利用计算机执行指令的时间实现定时。 优点:节省硬件。缺点:降低了CPU的使用效率、不容 易提供多作业环境。可作为实现粗略延时的方法。 3.可编程计数器/定时器 优点:其计数/定时功能可由程序灵活地设置,设定 之后与CPU并行地工作,不占用CPU的工作时间。
2

7.2 ARM Cortex-M0+内核时钟
ARM Cortex-M内核中包含了一个简单的定时器 SysTick,又称为“滴答”定时器。 SysTick定时器被捆 绑在NVIC(嵌套向量中断控制器)中,有效位数是24位 ,采用减1计数的方式工作,当减1计数到0,可产生 SysTick异常(中断),中断号为15。

7.2.1 Systick模块的编程结构
1.Systick定时器模块的寄存器地址 SysTick定时器模块中有4个32位寄存器, 其映像地 址及简明功能见P157表7-1。

3

2.控制及状态寄存器 控制及状态寄存器SYST_CSR见P157表7-2。

3.计数器及重载寄存器 SysTick模块的计数器SYST_CVR保存当前计数值 ,这个寄存器是由芯片硬件自行维护,用户无需干预, 系统可通过读取该寄存器的值得到更精细的时间表示。 初始化时,选择时钟源(决定了计数频率)、设置 重载寄存器SYST_RVR、设置优先级、允许中断,计数 器的初值为“重载寄存器SYST_RVR”中的值、使能该 模块。则计数器开始减1计数,计数到0时,SysTick控制 及状态寄存器SYST_CSR的溢出标志位COUNTFLAG被 置1,产生中断请求,同时,计数器自动重载初值并继续 4 减1计数。

4. M0+内核优先级设置寄存器 编写SysTick模块的初始化程序还需用到M0+内核优 先级设置寄存器(SHPR3,System Handler Priority Register 3),用于设定SysTick模块中断的优先级。 SHPR3位于系统控制块SCB(System Control Block)中 。只有SysTick、SVC(系统服务调用) 和PendSV(可 挂起系统调用)等内部异常可以设置其中断优先级,其 他内核异常的优先级是固定的。

7.2.2 Systick构件设计及测试工程
书P158给出以Systick定时器模块为时钟源,每隔一 秒钟通过串口向PC机发送时钟、分钟和秒钟的应用。
5

7.3 定时器/PWM模块功能概述及编程结构
7.3.1 TPM模块功能概述
TPM(定时器/脉宽调制模块)共有三个模块 TPM0/TPM1/TPM2,TPM0有6个通道,TPM1和TPM2 只有2个通道。TPM支持输入捕捉、输出比较,并且能够 产生PWM信号来控制电机。 TPM的基本定时器部分是一个递增的计数器,通过 设定模块的溢出值,当计数器递增到该数值时,产生 TPM中断,可以通过选择时钟源和溢出值设定该计数器 的频率。 1.外部引脚 TPM模块具有基本定时、输入捕捉、输出比较、脉 宽调制(PWM)功能。
6

7.3.1 TPM模块功能概述
TPM(定时器/脉宽调制模块)共有三个模块 TPM0/TPM1/TPM2,TPM0有6个通道,TPM1和TPM2 只有2个通道。TPM支持输入捕捉、输出比较,并且能够 产生PWM信号来控制电机。 TPM的基本定时器部分是一个递增的计数器,通过 设定模块的溢出值,当计数器递增到该数值时,产生 TPM中断,可以通过选择时钟源和溢出值设定该计数器 的频率。 2.基本结构 1)计数时钟源与分频 TPM的时钟由SIM_SOPT2[TPMSRC]和 SIM_SOPT2[PLLFLLSEL]来进行选择。 选择的时钟源的分频因子由状态和控制(TPMx_SC) 的PS[2:0]位决定。
7

2)计数器 TPM具有一个16位计数器,有两种操作模式:上升 计数和可逆计数。 上升计数:当(CPWMS = 0)时,上升计数被选中。 0值被加载到TPM计数器中,并且计数器增量直到达到 MOD中的值,此刻计数器被重载为0。 可逆计数:当(CPWMS = 1)时,可逆计数被选中。 当配置为可逆计数时, MOD必须大于等于2。0值被加载 到TPM计数器,并且计数器增量直到达到MOD值,此时计 数器减量直到它返回0值并且可逆计数重启。

8

2)计数器 TPM模块还具有输入捕捉、输出比较和PWM的功 能。 PWM分为两类 (1)边沿对齐PWM

(2)中央对齐PWM

9

7.3.2 TPM模块概要与编程要点
1.寄存器地址分析 每个TPM模块的地址(十六进制)为 4003_8000+x*1000(其中x代表模块号)。

10

2.控制寄存器 1)状态和控制寄存器 SC包含的溢出状态标志和控制位,用于配置中断使 能、模块配置和预分频因子。 2)通道(n)状态和控制寄存器 通道状态控制寄存器CnSC包含通道中断状态标志 和控制位用来配置中断使能、通道模式和引脚功能。 3.捕捉和比较状态寄存器 对于每个LPTPM通道中,状态寄存器包含了状态 标志CHnF位(在CnSC中)和TOF 位(在SC中)的一个拷 贝,这是为了便于软件编写。 4.其它寄存器 1)计数器寄存器 2)模数寄存器 3)通道(n)值寄存器 4)配置寄存器 11

7.3.3 TPM构件设计及测试工程
在书P169的程序中,将MCU的串口与PC机相连, TPM每达到1s进行一次计时,并通过串口将计时信息发 送给PC机。通过串口调试工具,可以看到时间计数值在 递增。TPM模块具有中断使能、初始化、关闭操作以及 TPM中断处理函数。按照构件的思想,可将它们封装成 独立的功能函数。

7.3.4 PWM构件设计及测试工程
在书 P169 的程序中,通过示波器可以看到 PTC1 或 者PTC2引脚输出的方波脉冲。

12

7.3.5 定时器模块的输入捕捉功能
1.输入捕捉的基本含义 输入捕捉功能是用来监测外部的事件和输入信号。
1 2

在图中的时刻1将计数器的值锁存在通道寄存器中 ,在输入捕捉中断中,把它另存到一个内存单元以防下 次将内容覆盖。在图中的2时刻会再次进入中断。这次将 通道寄存器的值和内存单元的值相减就得到了为低电平 的时间。 2.输入捕捉构件设计及测试工程 1)输入捕捉构件头文件(incap.h) 2)输入捕捉构件源文件(incap.c) 3)输入捕捉构件中断 4)输入捕捉构件测试工程 13

7.3.6 定时器模块的输出比较功能
1.输出比较的基本含义 1)输出比较的方法 输出比较的功能是用程序的方法在规定的时刻输出 需要的电平,实现对外部电路的控制。 2)输出比较过程 周期由预置寄存器(MOD)决定,而脉宽由通道寄存 器(CnV)决定。 2.用于输出比较的寄存器 输出比较使用的寄存器与输入捕捉使用的寄存器是 一致的,只是此时用来进行输出比较的工作。 TPM通道数值寄存器、TPM通道状态和控制寄存器 3.输出比较构件设计及测试工程 1)输出比较构件头文件(outcompare.h) 2)输出比较构件源文件(outcompare.c) 3)输出比较构件中断函数 14 4)输出比较构件测试工程

7.4 周期性中断定时器
7.4.1 PIT模块功能概述
周期中断定时器模块(Periodic Interrupt Timer, PIT)是一组可以用于产生中断和触发DMA通道的定时 器。该模块的中断都是可屏蔽的,每个定时器都有独立 的溢出周期,周期中断定时器模块没有外部引脚。图7-5 显示了PIT模块的结构框图。 PIT有以下三个基本操作。

15

PIT有以下三个基本操作: 1.定时器 当使能时,定时器定期产生触发。定时器加载 LDVAL寄存器中指定的开始值,递减计数到0,然后再次加 载单独的开始值。每当定时器达到0时,它将生成一个触发 脉冲并置位中断标志。一个新的中断只有在当前一个中 断被清0后才能产生。 有两种方法来改变计数器的周期: 1)通过先禁用定时器,设置一个新的载入值,然后再 使能计时器的方式可以修改正在运行的定时器的计数器 周期。

16

2)通过写新的载入值到LDVAL而不重启定时器也 可以改变计数器周期。这个值将在下一个触发器事件之 后被加载。

2.调试模式 在调试模式下,定时器将由MCR[FRZ]决定是否冻结 。这是指在帮助软件开发,使开发人员能够停止处理器,查 看系统的当前状态。 3.中断 所有的定时器都支持中断的产生。
17

7.4.2 PIT模块概要与编程要点
1.寄存器地址分析

2.控制寄存器 1)PIT模块控制寄存器(PIT_MCR) 2)定时器控制寄存器(PIT_TCTRLn)

18

3. PIT定时器中断标志寄存器 32位PIT定时器中断标志寄存器PIT_TFLGn( n=0~1)只有D31有用,是定时器中断标志位(TIF) 4.其他寄存器 1)PIT上层生命周期器寄存器(PIT_LTMR64H) 2)PIT下层生命周期定时器寄存器 (PIT_LTMR64L) 3)定时器载入值寄存器(PIT_LDVALn) 4)当前定时器值寄存器(PIT_CVALn)

7.4.3 PIT构件设计及测试实例 在 P183 的 程 序中 ,将 MCU 的 串口与 PC 机相连 , PIT每次中断进行一次计时,并通过串口将计时信息发送 给PC机。通过串口调试工具,我们可以看到时间计数值 在递增。 PIT 模块具有初始化、使能 PIT 通道、禁止 PIT 通道以及PIT中断处理函数。
19

7.5 低功耗定时器
7.5.1 LPTMR模块功能概述
低功耗定时器LPTMR(Low power timer)可以被 配置成具有可选预分频因子的定时计数器,也可以被配 置成带有脉冲干扰滤波器的脉冲计数器。绝大多数的系 统复位都不会影响其继续使用,可以用作天数计数器。 LPTMR模块共有五种操作模式,即运行模式、等 待模式、停止模式、低漏电模式和调试模式。一种计算 机硬件和软件的组合,也许还有机械装置,用于实现一 个特定功能。其核心是微控制器单元(MCU) 1.外部引脚

20

2.基本结构与特点 1)LPTMR功耗和复位 LPTMR在所有功耗模式(包括低漏模式)中保持 上电。 2)LPTMR时钟 LPTMR预分频器/脉冲干扰滤波器可以由四个时钟 中的一个来提供时钟。时钟源必须在LPTMR使能之前被 使能。 3)LPTMR预分频器/脉冲干扰滤波器 LPTMR预分频器和脉冲干扰滤波器共享相同的逻 辑,他们作为定时计数器模式中的预分频器和脉冲计数器 模式中的脉冲干扰滤波器来运行。

21

7.5.2 LPTMR模块编程结构
1.低功率定时器控制状态寄存器(LPTMRx_CSR) 2.低功耗定时器预分频寄存器(LPTMRx_PSR) 3.低功耗定时器比较寄存器(LPTMRx_CMR) 4.低功耗定时器计数寄存器(LPTMRx_CNR)

7.5.3 LPTMR构件设计及测试实例
在书P188的程序中,将MCU的串口与PC机相连, 每中断1次指示灯Light_Run1闪烁一下,并通过串口发送 特定的字符串到PC机。LPTMR模块具有时钟初始化、 开启中断、关闭中断及LPTMR中断处理函数。

22

7.6 实时时钟模块
7.6.1 RTC模块功能概述
实时时钟RTC(Real Time Clock)模块是一个独立 供电的模块,在芯片掉电时由备用电源(VBAT)供电, 确保RTC计时器正常运行,保持RTC寄存器状态。RTC 模块主要包含一个外部晶体振荡器、一个POR(Power-on reset)块、RTC计时器以及自身的软件复位控制位。 1.外部引脚

23

2.基本结构 1)电源、时钟和复位 RTC总是一个电源块,其在所有低功耗模式中保持活跃。 2)RTC振荡器控制 32.768 kHz晶体振荡器在POR时被禁用并且必须通过软 件被使能。 3)定时计数器 定时计数器由一个32位的秒计数器(其每秒增量一次) 和一个16位预分频器寄存器(其每隔32.768 kHz的时钟周期增 量一次)组成。 4)补偿 补偿逻辑提供了一个精确的和宽的的补偿范围,并且可 以在高达3906ppm和低至0.12 ppm范围内改正错误。 5)定时报警 定时报警寄存器、SR[TAF]和IER[TAIE]允许RTC生成 一个一个预定义时间的中断。 24

7.6.2 RTC模块概要与编程要点
1.寄存器地址分析

2. RTC控制寄存器(RTC_CR) 3. RTC状态寄存器(RTC_SR) 4.其他寄存器 1) RTC定时秒寄存器(RTC_ TSR) 2)RTC定时预分频器寄存器(RTC_ TPR) 3)RTC定时报警寄存器(RTC_TAR) 4)RTC定时补偿寄存器(RTC_TCR) 5)RTC锁存器 (RTC_LR) 6)RTC中断使能寄存器(RTC_IER)

25

7.6.3 RTC构件设计及测试工程
书P195的程序功能是每隔一定时间产生一次中断, 输出相应信息。RTC具有初始化、启动和关闭等基本操 作以及RTC中断处理函数。 1.RTC构件头文件(rtc.h) 2. RTC构件的源程序文件 3. RTC构件测试工程

26

7.7 本章小结
本章主要介绍了KL25可编程计时器/定时器的工作 原理,给出了内核定时器(Systick)和定时接口模块( TPM、PIT、LPTMR、RTC)基本功能与编程基础,以 及各种不同定时接口的使用方法,有助于读者将这些功 能应用到具体的系统中。

27


相关文章:
定时器模块介绍
1、简述 MC9S12XS128 定时器模块与 MC9S12DG128 ECT 部分功能完全类似, 以下均 以 ECT 模块介绍 xs128 定时器模块。 HC12 增强型捕捉计时器模块在 HCS12 ...
labview定时器模块
labview定时器模块_计算机硬件及网络_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 labview定时器模块_计算机硬件及网络_IT/计算机_专业资料。labview ...
XS128 定时器模块
电子设计吧 作者:dzsj8 点击: 1093 次 1、简述 MC9S12XS128 定时器模块与 MC9S12DG128 ECT 部分功能完全类似, 以下均 以 ECT 模块介绍 xs128 定时器模块...
定时器模块应用
定时器模块应用_信息与通信_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 定时器模块应用_信息与通信_工程科技_专业资料。输入捕捉( )编程步骤: 输入...
KL25定时器实验
KL25定时器实验_计算机硬件及网络_IT/计算机_专业资料。非常完美的实验报告 ...答:初始化相关模块: SysTick_CounterCmd(SysTick_Counter_Disable); SysTick_...
STM8教程-第十三章 STM8S207 定时器模块及其应用实例
第十三章 STM8S207 定时器模块及其应用实例这一节,我们将向大家介绍如何使用 STM8 的定时器中的基本定时功能,STM8 的定 时器功能十分强大, 有 TIM1 高级定时...
更多相关标签:
定时器模块 | 定时器模块变量 | nginx 定时器模块 | 在类模块中使用定时器 | 新闻联播20130910 | 全媒体全时空20130910 | 雪儿20130910s | ch340模块电路图 |