KL25-ch07(定时器模块)-20130910_第1页
KL25-ch07(定时器模块)-20130910_第2页
KL25-ch07(定时器模块)-20130910_第3页
KL25-ch07(定时器模块)-20130910_第4页
KL25-ch07(定时器模块)-20130910_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、第第7章章 定时器定时器主要内容:主要内容:7.1 计时器计时器/定时器的工作原理定时器的工作原理7.2 ARM Cortex-M0+内核时钟内核时钟7.3 定时器定时器/PWM模块功能概述及编程结构模块功能概述及编程结构7.4 周期性中断定时器周期性中断定时器7.5 低功耗定时器低功耗定时器7.6 实时时钟模块实时时钟模块7.7 本章小结本章小结17.1 计时器计时器/定时器的工作原理定时器的工作原理实现计数与定时的基本方法有三种:完全硬件方式实现计数与定时的基本方法有三种:完全硬件方式、完全软件方式、可编程计数器、完全软件方式、可编程计数器/定时器。定时器。1完全硬件方式完全硬件方式使用数

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

3、PU并行地工作,不占用并行地工作,不占用CPU的工作时间。的工作时间。27.2 ARM Cortex-M0+内核时钟内核时钟ARM Cortex-M内核中包含了一个简单的定时器内核中包含了一个简单的定时器SysTick,又称为,又称为“滴答滴答”定时器。定时器。 SysTick定时器被捆定时器被捆绑在绑在NVIC(嵌套向量中断控制器)中,有效位数是(嵌套向量中断控制器)中,有效位数是24位位,采用减,采用减1计数的方式工作,当减计数的方式工作,当减1计数到计数到0,可产生,可产生SysTick异常(中断),中断号为异常(中断),中断号为15。7.2.1 Systick模块的编程结构模块的编程结

4、构1Systick定时器模块的寄存器地址定时器模块的寄存器地址SysTick定时器模块中有定时器模块中有4个个32位寄存器,位寄存器, 其映像地其映像地址及简明功能见址及简明功能见P157表表7-1。32控制及状态寄存器控制及状态寄存器控制及状态寄存器控制及状态寄存器SYST_CSR见见P157表表7-2。3计数器及重载寄存器计数器及重载寄存器SysTick模块的计数器模块的计数器SYST_CVR保存当前计数值保存当前计数值,这个寄存器是由芯片硬件自行维护,用户无需干预,这个寄存器是由芯片硬件自行维护,用户无需干预,系统可通过读取该寄存器的值得到系统可通过读取该寄存器的值得到更精细更精细的时间

5、表示。的时间表示。初始化时,选择时钟源(决定了计数频率)、设置初始化时,选择时钟源(决定了计数频率)、设置重载寄存器重载寄存器SYST_RVR、设置优先级、允许中断,计数、设置优先级、允许中断,计数器的初值为器的初值为“重载寄存器重载寄存器SYST_RVR”中的值、使能该中的值、使能该模块。则计数器开始减模块。则计数器开始减1计数,计数到计数,计数到0时,时,SysTick控制控制及状态寄存器及状态寄存器SYST_CSR的溢出标志位的溢出标志位COUNTFLAG被被置置1,产生中断请求,同时,计数器自动重载初值并继续,产生中断请求,同时,计数器自动重载初值并继续减减1计数。计数。44 M0+内

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

7、核异常的优先级是固定的。他内核异常的优先级是固定的。7.2.2 Systick构件设计及测试工程构件设计及测试工程书书P158给出以给出以Systick定时器模块为时钟源,每隔一定时器模块为时钟源,每隔一秒钟通过串口向秒钟通过串口向PC机发送时钟、分钟和秒钟的应用。机发送时钟、分钟和秒钟的应用。57.3 定时器定时器/PWM模块功能概述及编程结构模块功能概述及编程结构7.3.1 TPM模块功能概述模块功能概述TPM(定时器定时器/脉宽调制模块脉宽调制模块)共有三个模块共有三个模块TPM0/TPM1/TPM2,TPM0有有6个通道,个通道,TPM1和和TPM2只有只有2个通道。个通道。TPM支持

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

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

10、数时钟源与分频TPM的时钟由的时钟由SIM_SOPT2TPMSRC和和SIM_SOPT2PLLFLLSEL来进行选择。来进行选择。选择的时钟源的分频因子由状态和控制选择的时钟源的分频因子由状态和控制(TPMx_SC)的的PS2:0位决定。位决定。72)计数器)计数器TPM具有一个具有一个16位计数器,有两种操作模式:上升位计数器,有两种操作模式:上升计数和可逆计数。计数和可逆计数。上升计数上升计数:当:当(CPWMS = 0)时,上升计数被选中。时,上升计数被选中。0值被加载到值被加载到TPM计数器中计数器中,并且计数器增量直到达到并且计数器增量直到达到MOD中的值中的值,此刻计数器被重载为此

11、刻计数器被重载为0。可逆计数可逆计数:当:当(CPWMS = 1)时,可逆计数被选中。时,可逆计数被选中。当配置为可逆计数时,当配置为可逆计数时, MOD必须大于等于必须大于等于2。0值被加载值被加载到到TPM计数器计数器,并且计数器增量直到达到并且计数器增量直到达到MOD值值,此时计此时计数器减量直到它返回数器减量直到它返回0值并且可逆计数重启。值并且可逆计数重启。82)计数器)计数器TPM模块还具有模块还具有输入捕捉输入捕捉、输出比较输出比较和和PWM的功的功能。能。PWM分为两类分为两类(1)边沿对齐)边沿对齐PWM(2)中央对齐)中央对齐PWM97.3.2 TPM模块概要与编程要点模块

12、概要与编程要点1寄存器地址分析寄存器地址分析每个每个TPM模块的地址模块的地址(十六进制十六进制)为为4003_8000+x*1000(其中其中x代表模块号代表模块号)。102控制寄存器控制寄存器1)状态和控制寄存器)状态和控制寄存器SC包含的溢出状态标志和控制位,用于配置中断使包含的溢出状态标志和控制位,用于配置中断使能、模块配置和预分频因子。能、模块配置和预分频因子。2)通道()通道(n)状态和控制寄存器)状态和控制寄存器通道状态控制寄存器通道状态控制寄存器CnSC包含通道中断状态标志包含通道中断状态标志和控制位用来配置中断使能、通道模式和引脚功能。和控制位用来配置中断使能、通道模式和引脚

13、功能。3捕捉和比较状态寄存器捕捉和比较状态寄存器对于每个对于每个LPTPM通道中,状态寄存器包含了状态通道中,状态寄存器包含了状态标志标志CHnF位(在位(在CnSC中)和中)和TOF 位位(在在SC中中)的一个拷的一个拷贝,这是为了便于软件编写。贝,这是为了便于软件编写。4其它寄存器其它寄存器1)计数器寄存器)计数器寄存器2)模数寄存器)模数寄存器3)通道()通道(n)值寄存器)值寄存器4)配置寄存器)配置寄存器117.3.3 TPM构件设计及测试工程构件设计及测试工程在书在书P169的程序中,将的程序中,将MCU的串口与的串口与PC机相连,机相连,TPM每达到每达到1s进行一次计时,并通过

14、串口将计时信息发进行一次计时,并通过串口将计时信息发送给送给PC机。通过串口调试工具,可以看到时间计数值在机。通过串口调试工具,可以看到时间计数值在递增。递增。TPM模块具有中断使能、初始化、关闭操作以及模块具有中断使能、初始化、关闭操作以及TPM中断处理函数。按照构件的思想,可将它们封装成中断处理函数。按照构件的思想,可将它们封装成独立的功能函数。独立的功能函数。7.3.4 PWM构件设计及测试工程构件设计及测试工程在书在书P169的程序中,通过示波器可以看到的程序中,通过示波器可以看到PTC1或或者者PTC2引脚输出的方波脉冲。引脚输出的方波脉冲。127.3.5 定时器模块的输入捕捉功能定

15、时器模块的输入捕捉功能1输入捕捉的基本含义输入捕捉的基本含义输入捕捉功能是用来监测外部的事件和输入信号。输入捕捉功能是用来监测外部的事件和输入信号。在图中的时刻在图中的时刻1将计数器的值锁存在通道寄存器中将计数器的值锁存在通道寄存器中,在输入捕捉中断中,把它另存到一个内存单元以防下,在输入捕捉中断中,把它另存到一个内存单元以防下次将内容覆盖。在图中的次将内容覆盖。在图中的2时刻会再次进入中断。这次将时刻会再次进入中断。这次将通道寄存器的值和内存单元的值相减就得到了为低电平通道寄存器的值和内存单元的值相减就得到了为低电平的时间。的时间。2输入捕捉构件设计及测试工程输入捕捉构件设计及测试工程1)输

16、入捕捉构件头文件()输入捕捉构件头文件(incap.h)2)输入捕捉构件源文件()输入捕捉构件源文件(incap.c)3)输入捕捉构件中断)输入捕捉构件中断4)输入捕捉构件测试工程)输入捕捉构件测试工程13127.3.6 定时器模块的输出比较功能定时器模块的输出比较功能1输出比较的基本含义输出比较的基本含义1)输出比较的方法)输出比较的方法输出比较的功能是用程序的方法在规定的时刻输出输出比较的功能是用程序的方法在规定的时刻输出需要的电平,实现对外部电路的控制。需要的电平,实现对外部电路的控制。 2)输出比较过程)输出比较过程周期由预置寄存器周期由预置寄存器(MOD)决定,而脉宽由通道寄存决定,

17、而脉宽由通道寄存器器(CnV)决定。决定。2用于输出比较的寄存器用于输出比较的寄存器输出比较使用的寄存器与输入捕捉使用的寄存器是输出比较使用的寄存器与输入捕捉使用的寄存器是一致的,只是此时用来进行输出比较的工作。一致的,只是此时用来进行输出比较的工作。TPM通道数值寄存器、通道数值寄存器、TPM通道状态和控制寄存器通道状态和控制寄存器3输出比较构件设计及测试工程输出比较构件设计及测试工程1)输出比较构件头文件()输出比较构件头文件(outcompare.h)2)输出比较构件源文件()输出比较构件源文件(outcompare.c)3)输出比较构件中断函数)输出比较构件中断函数4)输出比较构件测试

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

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

20、再然后再使能计时器的方式可以修改正在运行的定时器的计数器使能计时器的方式可以修改正在运行的定时器的计数器周期。周期。162)通过写新的载入值到)通过写新的载入值到LDVAL而不重启定时器也而不重启定时器也可以改变计数器周期。这个值将在下一个触发器事件之可以改变计数器周期。这个值将在下一个触发器事件之后被加载。后被加载。2调试模式调试模式在调试模式下在调试模式下,定时器将由定时器将由MCRFRZ决定是否冻结决定是否冻结。这是指在帮助软件开发。这是指在帮助软件开发,使开发人员能够停止处理器使开发人员能够停止处理器,查查看系统的当前状态。看系统的当前状态。3中断中断所有的定时器都支持中断的产生。所有

21、的定时器都支持中断的产生。177.4.2 PIT模块概要与编程要点模块概要与编程要点1寄存器地址分析寄存器地址分析2控制寄存器控制寄存器1)PIT模块控制寄存器模块控制寄存器(PIT_MCR)2)定时器控制寄存器)定时器控制寄存器(PIT_TCTRLn)183 PIT定时器中断标志寄存器定时器中断标志寄存器32位位PIT定时器中断标志寄存器定时器中断标志寄存器PIT_TFLGn(n=01)只有)只有D31有用,是定时器中断标志位(有用,是定时器中断标志位(TIF)4其他寄存器其他寄存器1)PIT上层生命周期器寄存器上层生命周期器寄存器(PIT_LTMR64H)2)PIT下层生命周期定时器寄存器

22、下层生命周期定时器寄存器(PIT_LTMR64L)3)定时器载入值寄存器)定时器载入值寄存器(PIT_LDVALn)4)当前定时器值寄存器)当前定时器值寄存器(PIT_CVALn)7.4.3 PIT构件设计及测试实例构件设计及测试实例在在P183的程序中,将的程序中,将MCU的串口与的串口与PC机相连,机相连,PIT每次中断进行一次计时,并通过串口将计时信息发送每次中断进行一次计时,并通过串口将计时信息发送给给PC机。通过串口调试工具,我们可以看到时间计数值机。通过串口调试工具,我们可以看到时间计数值在递增。在递增。PIT模块具有初始化、使能模块具有初始化、使能PIT通道、禁止通道、禁止PIT

23、通道以及通道以及PIT中断处理函数。中断处理函数。197.5 低功耗定时器低功耗定时器7.5.1 LPTMR模块功能概述模块功能概述低功耗定时器低功耗定时器LPTMR(Low power timer)可以被)可以被配置成具有可选预分频因子的定时计数器,也可以被配配置成具有可选预分频因子的定时计数器,也可以被配置成带有脉冲干扰滤波器的脉冲计数器。绝大多数的系置成带有脉冲干扰滤波器的脉冲计数器。绝大多数的系统复位都不会影响其继续使用,可以用作天数计数器。统复位都不会影响其继续使用,可以用作天数计数器。LPTMR模块共有五种操作模式,即运行模式、等模块共有五种操作模式,即运行模式、等待模式、停止模式

24、、低漏电模式和调试模式。一种计算待模式、停止模式、低漏电模式和调试模式。一种计算机硬件和软件的组合,也许还有机械装置,用于实现一机硬件和软件的组合,也许还有机械装置,用于实现一个特定功能。其核心是微控制器单元(个特定功能。其核心是微控制器单元(MCU)1外部引脚外部引脚202基本结构与特点基本结构与特点1)LPTMR功耗和复位功耗和复位LPTMR在所有功耗模式(包括低漏模式)中保持在所有功耗模式(包括低漏模式)中保持上电。上电。2)LPTMR时钟时钟LPTMR预分频器预分频器/脉冲干扰滤波器可以由四个时钟脉冲干扰滤波器可以由四个时钟中的一个来提供时钟。时钟源必须在中的一个来提供时钟。时钟源必须

25、在LPTMR使能之前被使能之前被使能。使能。3)LPTMR预分频器预分频器/脉冲干扰滤波器脉冲干扰滤波器LPTMR预分频器和脉冲干扰滤波器共享相同的逻预分频器和脉冲干扰滤波器共享相同的逻辑辑,他们作为定时计数器模式中的预分频器和脉冲计数器他们作为定时计数器模式中的预分频器和脉冲计数器模式中的脉冲干扰滤波器来运行。模式中的脉冲干扰滤波器来运行。217.5.2 LPTMR模块编程结构模块编程结构1低功率定时器控制状态寄存器低功率定时器控制状态寄存器(LPTMRx_CSR)2低功耗定时器预分频寄存器低功耗定时器预分频寄存器(LPTMRx_PSR)3低功耗定时器比较寄存器低功耗定时器比较寄存器(LPT

26、MRx_CMR)4低功耗定时器计数寄存器低功耗定时器计数寄存器(LPTMRx_CNR)7.5.3 LPTMR构件设计及测试实例构件设计及测试实例在书在书P188的程序中,将的程序中,将MCU的串口与的串口与PC机相连,机相连,每中断每中断1次指示灯次指示灯Light_Run1闪烁一下,并通过串口发送闪烁一下,并通过串口发送特定的字符串到特定的字符串到PC机。机。LPTMR模块具有时钟初始化、模块具有时钟初始化、开启中断、关闭中断及开启中断、关闭中断及LPTMR中断处理函数。中断处理函数。227.6 实时时钟模块实时时钟模块7.6.1 RTC模块功能概述模块功能概述实时时钟实时时钟RTC(Rea

27、l Time Clock)模块是一个独立)模块是一个独立供电的模块,在芯片掉电时由备用电源(供电的模块,在芯片掉电时由备用电源(VBAT)供电,)供电,确保确保RTC计时器正常运行,保持计时器正常运行,保持RTC寄存器状态。寄存器状态。RTC模块主要包含一个外部晶体振荡器、一个模块主要包含一个外部晶体振荡器、一个POR(Power-on reset)块、块、RTC计时器以及自身的软件复位控制位。计时器以及自身的软件复位控制位。 1外部引脚外部引脚232基本结构基本结构1)电源、时钟和复位)电源、时钟和复位RTC总是一个电源块总是一个电源块,其在所有低功耗模式中保持活跃。其在所有低功耗模式中保持活跃。 2)RTC振荡器控制振荡器控制32.768 kHz晶体振荡器在晶体振荡器在POR时被禁用并且必须通过软时被禁用并且必须通过软件被使能。件被使能。3)定时计数器)定时计数器定时计数器由一个定时计数器由一个32位的秒计数器(其每秒增量一次)位的秒计数器(其每秒增量一次)和一个和一个16位预分频器寄存器(其

温馨提示

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

评论

0/150

提交评论