嵌入式技术基础与实践(第2版)第07章_第1页
嵌入式技术基础与实践(第2版)第07章_第2页
嵌入式技术基础与实践(第2版)第07章_第3页
嵌入式技术基础与实践(第2版)第07章_第4页
嵌入式技术基础与实践(第2版)第07章_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第7章定时器模块主要内容

7.1计数器/定时器的基本工作原理7.2定时器模块的编程结构与编程实例7.3定时器模块的输入捕捉功能7.4定时器模块的输出比较功能7.5定时器模块的脉宽调制(PWM)输出功能7.1计数器/定时器的基本工作原理7.1.1实现计数与定时的基本方法完全硬件方式即完全用硬件电路实现计数/定时功能完全软件方式通过编程,利用计算机执行指令的时间实现定时可编程计数器/定时器利用专门的可编程计数器/定时器实现计数与定时,克服了完全硬件方式与完全软件方式的缺点,综合利用了它们各自的优点MC9S08AW60系列中的定时器系统包括两个独立的TPM:一个6通道的TPM1和一个2通道的TPM2。TPM模块管脚和I/O管脚复用。Slide47.1概述

定时器/PWM模块TPM(Timer/Pulse-WidthModulator)定时器系统的特性总共8个通道每一个通道都可作为输入捕捉、输出比较、或带缓冲的边缘对齐PWM上升沿、下降沿或任何边沿的输入捕捉触发变1、变0或翻转等输出比较动作PWM输出极性可选每一个TPM的所有通道都可以配置成为带缓冲的中心对齐脉宽调制CPWM(buffered,center-alignedpulse-widthmodulation)每一个TPM预分频器的时钟源都可以独立选择总线时钟、固定系统时钟或外部管脚:预分频除数可以为1,2,4,8,16,32,64或128可以用外部时钟输入(仅对64管脚的封装):TPM1用TPM1CLK,TPM2用TPM2CLK16位自由运行或者增数/减数的CPWM技术操作16位预置计数寄存器用于控制计数范围定时器系统允许对每个TPM,每个通道一个中断,还有一个计数中止中断Slide57.1概述内部结构两个独立的TPM每个TPM都由1个16位的计数器与n

(n=6or2)个输入/输出通道组成每一个通道都可作为输入捕捉、输出比较、或带缓冲的边缘对齐PWMSlide67.2功能描述自由计数定时核心是一个16位的计数器三种时钟源之一经过分频之后的脉冲即作为定时器的计数脉冲每过一个计数脉冲,Counter便自动+1,Counter加到FFFF后翻转到$0000,同时置溢出标志位TOF为1,然后重新开始计数溢出时若TOIE为1,还会产生中断请求例如fbus=4MHz,分频比=1,则计数脉冲的周期为0.25us;这样产生溢出的时间间隔就是0.25us×65535=16.38375msFbus和分频比的不同可以产生不同的溢出时间间隔;但是这种自由计数定时方式定时有限Slide77.2功能描述自由计数定时核心是一个16位的计数器只读的16位TPM计数寄存器由两个字节寄存器TPMxCNTH和TPMxCNTL构成。Slide87.2功能描述预置计数定时向16位模数计数寄存器TPMxMODH:TPMxMODL写入一个确定的数值,则计数器每进行一次计数都会将计数和模数计数寄存器的值进行比较,如果相同就产生溢出,同时置溢出标志位TOF为1,然后重新开始计数,溢出时若TOIE为1,还会产生中断请求若fbus=2MHz,Pre=32,计数间隔2MHz/32,即16μs计数一次。如果TPMMOD=62500,则得1秒溢出间隔。自由计数是预置计数在TPMMOD=0000H时的特例Slide97.2功能描述预置计数定时向16位模数计数寄存器TPMxMODH:TPMxMODL写入一个确定的数值,则计数器每进行一次计数都会将计数和模数计数寄存器的值进行比较,如果相同就产生溢出,同时置溢出标志位TOF为1,然后重新开始计数,溢出时若TOIE为1,还会产生中断请求Slide107.2功能描述TPM时钟源设定Slide117.2功能描述TPM溢出中断Slide127.2功能描述TPM溢出中断Slide137.2功能描述TPM1溢出中断向量表首地址为$FFE8TPM2溢出中断向量表首地址为$FFE2每个自由计数器包含三个寄存器:一个8位状态控制寄存器 (TPMxSC)一个16位计数器 (TPMxCNTH:TPMxCNTL)一个16位模数寄存器

(TPMxMODH:TPMxMODL)其中,x=1/2Slide147.3模块寄存器定时器x状态控制寄存器(TPMxSC)

Slide157.3模块寄存器定时器x状态控制寄存器(TPMxSC)

Slide167.3模块寄存器定时器x计数寄存器(TPMxCNTH:TPMxCNTL)

只读的16位TPM计数寄存器由两个字节寄存器TPMxCNTH和TPMxCNTL构成。读两个字节中的任何一个字节都会把两个字节内容锁存进内部缓冲器,直到另外一个字节也被读取为止。这允许以任何顺序读取连贯的16位寄存器。Slide177.3模块寄存器定时器x模数寄存器(TPMxMODH:TPMxMODL)

可读/写的TPM模数寄存器中包含TPM计数器的模数值。当TPM计数器到达这个模数值后,TPM计数器在下一个时钟要么重新从0x0000开始计数(CPWMS=0),要么从这个模数值往下减1计数(CPWMS=1),同时溢出标志TOF(TimerOverflowFlag)变为1。只写TPMxMODH或者TPMxMODL其中的一个会抑制住TOF和溢出中断直到些另外一个字节也被写为止,因此两个寄存器一定都要写,不能只写一个而不管另一个。复位会使TPM模数寄存器为0x0000,相当处于自由运行定时器计数模式(模数禁止)。Slide187.3模块寄存器定时器功能框图7.2定时器模块的编程结构与编程实例7.2.1定时器模块的编程寄存器

TPM状态和控制寄存器TPM状态和控制寄存器(TimerxStatusandControl

Registers,TPMxSC)各个位的定义:D7—TOF为定时器溢出标志位(TimerOverFlagBit)D6—TOIE为定时器溢出中断允许位(TimerOverflowInterruptEnableBit)D5—CPWMS为中心对齐PWM选择位(Center-AlignedPWMSelectBit)数据位D7D6D5D4D3D2D1D0定义TOFTOIECPWMSCLKSBCLKSAPS2PS1PS0复位00000000D4~D3—CLKS为时钟源选择位(ClockSourceSelectBit)

TPM时钟源选择D2~D0—PS2~PS0为定时器分频因子选择位(TimerPrescalerSelectBits)CLKSB:CLKSA预分频器输入的TPM时钟源0:0没有选择的时钟(TPM屏蔽)0:1总线时钟(BUSCLK)1:0固定系统时钟(XCLK)1:1外部时钟源(TPMCLK)TPM计数寄存器

PM计数寄存器(TimerxCounterRegister,TPMxCNTH:TPMxCNTL)是一个16位寄存器,分为高8位、低8位,它的作用是:当定时器的状态和控制寄存器的TSTOP位=0时,即允许计数时,每一计数周期,其值自动加1,当它达到设定值(在16位预置寄存器中)时,TOF=1,同时计数寄存器自动清0。复位时,计数寄存器的初值为$0000。TPM预置寄存器

它是一个16位寄存器,分为高8位、低8位,它的作用是:设定计数寄存器的计数溢出值。复位时,预置寄存器的初值为$FFFF。7.2.2定时溢出中断构件与编程实例MCU方程序MCU的十分秒与PC机的十分秒对比测试PC方C#程序定时器溢出中断实验PC机方C#程序界面7.3输入捕捉功能7.3.1输入捕捉的基本含义用途:通过记录输入信号的连续的沿跳变,就可以用软件算出输入信号的周期和脉宽。定时器捕捉到特定的沿跳变后,把计数寄存器当前的值锁存到通道寄存器用来测信号的频率定时器COUNTER按指定的时钟速率自由计数,在通道的I/O引脚上输入外接信号,输入捕捉功能就能用来监测该输入信号的跳变。一旦捕捉到外部信号发生变化时,定时器将自由运行计数器COUNTER的当前值锁存到输入捕捉寄存器TPMxCOVH:TPMxCOVL,读出TPMxCOVH:TPMxCOVL的计数值即获得了时间信息。如果允许输入捕捉中断,系统还会产生一次中断请求。7.3输入捕捉功能在AW60的LQFP-64封装形式中,第4、5、6、7、8、11、15、16引脚为定时器的通道引脚,它们是通用I/O与定时器输入捕捉的复用引脚。作为定时器输入捕捉功能使用时,它们是定时器通道的输入捕捉引脚7.3输入捕捉功能7.4.2相关寄存器TPMxCnVH:TPMxCnVLTPM通道数值寄存器TPMxCnSCTPM通道状态和控制寄存器7.3输入捕捉功能TPM通道数值寄存器定时器1有6个通道,定时器2有2个通道,这8个通道都有相应的数值寄存器。通道寄存器在该通道用作输入捕捉时的作用是:当指定的沿跳变发生(即定时系统捕捉到沿跳变)时,锁存计数寄存器的值。通道寄存器是一个16位的寄存器,分为高字节和低字节,在读取的时候要分别读取。为了防止两次读取之间该寄存器的内容发生变化而产生虚假的输入捕捉计数值,系统会在读取高字节时锁存低字节的内容,这时即使又发生特定的沿跳变,通道寄存器的内容也不会改变。所以,若要读取整个通道寄存器,必须先读高字节,再读低字节。TPMxCnVH:TPMxCnVL7.3输入捕捉功能TPM通道状态和控制寄存器D7—CHnF为通道n标志位(ChannelnFlagBit):发生输入捕捉时,置1.读该寄存器并向该位写入0,清该标志D6—CHInE为通道中断允许位(ChannelnInterruptEnableBit)

=1:允许通道n中断;

=0:禁止通道n中断;D5~D4—MSnB~MSnA为通道n模式选择位(ModeSelectBit)D3~D2—ELSnB~ELSnA为跳变沿/输出电平选择位(Edge/LevelSelectBit)D1—TO0为溢出翻转控制标志位(ToggleonOverflowBit)D0—CHMAX为通道最大占空比设置位(ChannelXMaximumDutyCycleBit)TPMxCnSC7.3输入捕捉功能7.3定时器模块的输入捕捉功能7.3.1输入捕捉的基本含义与输入捕捉功能相关的引脚

在AW60的LQFP-64封装形式中,第4、5、6、7、8、11、15、16引脚为定时器的通道引脚,它们是通用I/O与定时器输入捕捉的复用引脚。作为定时器输入捕捉功能使用时,它们是定时器通道的输入捕捉引脚输入捕捉的基本知识

输入捕捉功能是用来监测外部的事件和输入信号。当外部事件发生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到特定的沿跳变后,把计数寄存器当前的值锁存到通道寄存器7.3.2输入捕捉的寄存器TPM通道数值寄存器(TimerxChannelnValueRegister,TPMxCnVH:TPMxCnVL)

定时器1有6个通道,定时器2有2个通道,这8个通道都有相应的数值寄存器。通道寄存器在该通道用作输入捕捉时的作用是:当指定的沿跳变发生(即定时系统捕捉到沿跳变)时,锁存计数寄存器的值。通道寄存器是一个16位的寄存器,分为高字节和低字节,在读取的时候要分别读取。为了防止两次读取之间该寄存器的内容发生变化而产生虚假的输入捕捉计数值,系统会在读取高字节时锁存低字节的内容,这时即使又发生特定的沿跳变,通道寄存器的内容也不会改变。所以,若要读取整个通道寄存器,必须先读高字节,再读低字节。TPM通道状态和控制寄存器

TPM通道状态和控制寄存器(TimerxChannelnStatusandControlRegister,TPMxCnSC)定义:D7—CHnF为通道n标志位(ChannelnFlagBit)D6—CHInE为通道中断允许位(ChannelnInterruptEnableBit)D0—CHMAX为通道最大占空比设置位(ChannelXMaximumDutyCycleBit)D3~D2—ELSnB~ELSnA为跳变沿/输出电平选择位(Edge/LevelSelectBit)D1—TO0为溢出翻转控制标志位(ToggleonOverflowBit)D5~D4—MSnB~MSnA为通道n模式选择位(ModeSelectBit)数据位D7D6D5D4D3D2D1D0定义CHnFCHnIEMSnBMSnAELSnBELSnA复位00000000通道控制寄存器控制位7.4定时器模块的输出比较功能7.4.1输出比较的基本知识与输出比较功能相关的引脚

在AW60的LQFP-64封装形式中,第4、5、6、7、8、11、15、16引脚为定时器的通道引脚,它们是通用I/O与定时器输入捕捉、输出比较的复用引脚输出比较的方法

输出比较的功能是用程序的方法在规定的时刻输出需要的电平,实现对外部电路的控制输出比较过程具体过程见下表输出比较过程7.4.2用于输出比较的寄存器TPM通道数值寄存器存放要与计数寄存器进行比较的数值TPM通道状态和控制寄存器在输出比较时,D7~D2位与用作输入捕捉时的含义相同7.4.3输出比较编程实例7.5定时器模块的脉宽调制(PWM)输出功能7.5.1脉冲宽度调制器PWM工作原理PWM的占空比的计算方法7.5.2AW60定时器的两种PWM模式边沿对齐PWM

边沿对齐PWM(Edge-AlignedPWMMode)模式使用计时器的正常向上递增模式(CPWMS=0),且同一TPM中的其它通道可配置为输入捕获或输出比较功能。该PWM信号的周期由预置寄存器(TPMxMODH:TPMxMODL)确定,占空比由通道数值寄存器

温馨提示

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

评论

0/150

提交评论