定时器模块TPM(Timer/Pulse Width Modulation)是HCS08单片机的基本功能模块,是一种可编程的定时器模块。MC9S08AC16系列单片机包含三个独立定时器模块:TPM1、TPM2和TPM3,支持多种与时间有关的功能,如传统的定时功能、输入捕捉(In-put Capture)功能、输出比较(Output Compare)功能和带缓冲的边沿对齐PWM(Pulse Width Modulation)功能。
每一个TPM模块中,定时功能是通过对独立的带分频器以及模块化的16位计数器来控制定时范围和计数溢出周期的,这样的计时系统非常适于多种控制应用。输入捕捉功能则是利用定时器模块对边沿跳变的敏感性来获得输入信号边沿跳变发生的时间,可应用于信号频率检测、脉冲宽度测量和输入计数等。输出比较功能是利用定时器模块来产生并输出与设定时间相关的波形。PWM功能则使其能应用于更加广泛的领域,如小家用电器的电动机控制等。
HCS08单片机的TPM模块由时钟控制、16位自由计数器、比较器、模寄存器、控制逻辑以及各通道寄存器组成,TPM模块内部结构图如图8-1所示。
TPM模块的核心部分是一个16位的加/减1计数器,它是一个自运行计数器或一个递增/递减计数器。当它运行于递增模式时可为输入捕捉、输出比较、边沿对齐PWM功能提供参考时钟。TPM模块的模寄存器TPMxMODH和TPMxMODL也是一个16位寄存器,它可以用来控制16位计数器的计数值。当模寄存器的值设置为0x0000或0xFFFF时,计数器为自由运行计数,当计数器开始运行并计数值增加到0xFFFF就会产生一个溢出。在设置了模寄存器的情况下(即模寄存器的内容不为0x0000或0xFFFF),一旦计数器计数到模寄存器的值时,计数器就会溢出。所以,合理使用模寄存器功能可以得到精确的溢出时间。同时在计数器运行时,可通过程序随意读取计数器当前值,而不影响计数时序。(www.xing528.com)
每个TPM模块具有数量不等的工作通道,每个通道使用一个输入/输出引脚,可表示为TPMxCHn(其中x表示定时器数,n表示通道数),例如:TPM1CH0就是表示定时器1通道0。TPM的通道引脚在硬件上与GPIO引脚复用。
图8-1 TPM模块内部结构图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。