第7章定时器模块主要内容7.1计数器/定时器的基本工作原理7.2定时器模块的编程结构与编程实例7.3定时器模块的输入捕捉功能7.4定时器模块的输出比较功能7.5定时器模块的脉宽调制(PWM)输出功能7.1计数器/定时器的基本工作原理7.1.1实现计数与定时的基本方法完全硬件方式即完全用硬件电路实现计数/定时功能完全软件方式通过编程,利用计算机执行指令的时间实现定时可编程计数器/定时器利用专门的可编程计数器/定时器实现计数与定时,克服了完全硬件方式与完全软件方式的缺点,综合利用了它们各自的优点7.1.2AW60的定时接口的功能框图AW60的定时器的主要功能与技术指标:每个定时器具有多路独立的输入捕捉/输出比较通道八种可编程选择的分频因子;预置计数;计数器清除16位输入捕捉和通道寄存器定时器溢出中断、每路通道的输入捕捉/输出比较中断等定时器功能框图7.2定时器模块的编程结构与编程实例7.2.1定时器模块的编程寄存器TPM状态和控制寄存器TPM状态和控制寄存器(TimerxStatusandControlRegisters,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输入捕捉的基本含义与输入捕捉功能相关的引脚在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)确定,占空比由通道数值寄存器(TPMxCnVH:TPMxCnVL)确定,PWM信号的极性由ELSnA确定,占空比的可能值在0%与100%之间PWM周期和脉宽(ELSnA=0)中心对齐PWM中心对齐PWM(Center_AlignedPWMMode)模式使用计数器向上递增/向下递减模式(CPWMS=1)。如下图此时,同一定时器的所有通道均为中心对齐PWM模式,PWM信号周期由预置寄存器(TPMxMODH:TPMxMODL)的值的2倍确定,并且应保持在0x0001~0x7FFF之间,因为超出范围的值可能产生不确定结果。占空比由通道数值寄存器决定,当TPMxCnVH:TPMxCHnVL=0x0000时,占空比为0%;当TPMxCnVH:TPMxCHnVL大于TPMxMODH:TPMxMODL(非零)时,占空比为100%本节通过对PWM占空比的调节实现小灯逐渐变亮的过程PWM驱动文件PWM.cPWM头文件PWM.h主程序文件main.c7.5.3PWM编程实例第7章习题1.实现计数与定时的基本方法有哪些?比较它们的优缺点。2.简述AW60定时器模块的定时功能是如何实现的。3.定时器模块的核心是什么,为什么?4.设计并编程:仿照本章给出的定时器1通道0输入捕捉中断里程,捕捉两路输入信号,分别用相应的指示灯指示。5.比较AW60定时器模块实现输出比较功能与PWM功能的异同点。6.综合设计:利用输入捕捉功能,只用定时器的一个通道,测量一路输入,将输入信号的电平(只区分高低)随时间变化的情况以图形方式显示在PC屏幕上。