首页 理论教育 通用定时器的计数操作优化技巧

通用定时器的计数操作优化技巧

时间:2023-06-29 理论教育 版权反馈
【摘要】:定时器对应的控制寄存器TxCON中的TMODE1和TMODE0位确定通用定时器使用的计数模式。当定时器禁止时,定时器的计数器操作禁止,并且定时器的预定标器被复位为x/1。定时器计数器与周期寄存器匹配一个时钟周期后,周期中断标志位置位。通用定时器的计数初始值可以是0~FFFFH中的任意值。图6-3给出了通用定时器连续增计数模式的计数工作方式。

通用定时器的计数操作优化技巧

每个通用定时器有4种工作模式:

●停止/保持模式(Sto p/Hold mode)。

●连续增计数模式(Continuous up c ount mode)。

●定向增/减计数模式(Directional up/d own count mode)。

●连续增/减计数模式(Continuous up/down c ount mode)。

定时器对应的控制寄存器TxCON中的TMODE1和TMODE0位确定通用定时器使用的计数模式。定时器使能位TENABLE(TxCON.6)可以使能或禁止定时器的计数操作。当定时器禁止时,定时器的计数器操作禁止,并且定时器的预定标器被复位为x/1。当使能定时器时,定时器按照寄存器TxCON中的TMODE1和TMODE0位确定的工作模式工作,并开始计数。

(1)停止/保持模式

在这种模式下,通用定时器停止并保持在当前的状态,定时器的计数器、比较输出和预定标计数器都保持不变。

(2)连续增计数模式

在连续增计数模式下,定时器将按照预定标的输入时钟计数,在计数器值和周期寄存器值匹配后的下一个输入时钟的上升沿,计数值复位为0,并开始下一个计数周期。

定时器计数器与周期寄存器匹配一个时钟周期后,周期中断标志位置位。如果外设中断未被屏蔽,将产生一个外设中断请求。如果该周期中断已由GPTCONA/B寄存器中的相应位选定用来启动ADC,则中断标志位置位的同时会将A-D转换启动信号送到A-D转换模块中。

在通用定时器的值变为0的一个时钟周期后,定时器的下溢中断标志位置位。如果该位未被屏蔽,则产生一个外设中断请求。如果该周期中断已由GPTCONA/B寄存器中的相应位选定用来启动ADC,则中断标志位置位的同时会将A-D转换启动信号送到A-D转换模块中。

在TxCNT的值与FFFFH匹配的一个时钟周期后,上溢中断标志位置位。如果该位未屏蔽,则会产生一个外设中断请求。

除第一个计数周期外,定时器周期的时间为TxPR+1个定标的时钟输入周期。如果定时器的计数器开始计数时为0,则第一个周期也和以后的周期相同。

通用定时器的计数初始值可以是0~FFFFH中的任意值。如果计数器的初始值大于周期寄存器的值,则定时器计数器将计数到FFFFH,计数器清零后继续计数操作,与初始值为0一样。当计数器的初始值等于周期寄存器的值时,定时器产生周期中断标志,并复位到0,置位下溢中断标志位,然后继续增计数,就好像初始值是0一样。如果定时器的初始值在0和周期寄存器的值之间,定时器就计数到周期寄存器,完成该计数周期。

在连续增计数模式下,GPTCONA/B寄存器中的计数方向标志位为1,内部CPU时钟和外部时钟均可作为定时器的输入时钟。在连续增计数模式下,TDIRA/B引脚输入的时钟不起作用。

通用定时器的连续增计数模式特别适用于边沿触发或异步PWM波形产生等应用,也适用于许多电动机运动控制系统采样周期的产生。图6-3给出了通用定时器连续增计数模式的计数工作方式

978-7-111-36250-0-Chapter06-8.jpg

图6-3 通用定时器连续增计数模式(www.xing528.com)

(3)定向增/减计数模式

通用定时器在定向增/减计数模式中,根据定标后的时钟和计数方向(TDIRA/B)引脚来进行递增或递减计数。当TDIRA/B保持为高电平时,通用定时器增计数,直到其等于周期寄存器的值(如果初始值大于周期寄存器的值,就计数到FFFFH)。当通用定时器的值等于周期寄存器的值(或等于FFFFH)时,定时器的计数器清零,继续重新增计数到周期寄存器的值。当TDIRA/B引脚保持为低电平时,通用定时器计数器则递减计数,直到等于0。当定时器的值减计数到0时,定时器重新装载周期寄存器中的值,并继续计数。

通用定时器的初始值可以是0~FFFFH的任意值。如果计数器的初始值大于周期寄存器的值,则定时器计数器将在计数到FFFFH后自动清零,然后继续计数直到等于周期寄存器的值。如果TDIRA/B引脚为低电平且定时器的初始值大于周期寄存器的值,定时器将递减计数到周期寄存器的值后再继续递减计数到0,在计数器的值计数到0后,定时器重新装载周期寄存器的值再正常递减计数。

周期、下溢、上溢的中断标志位、中断请求以及相关的操作都由各自事件产生,其产生与连续增计数模式相同。引脚(TDIRA/B)的电平变化后,定时器的计数方向相应改变,延时时间为当前计数周期完成后一个时钟。

定时器在这种工作模式下,计数方向由GPTCONA/B寄存器中的方向标志位确定:1代表递增计数,0代表递减计数。TCLKINA/B引脚的外部时钟和内部CPU时钟均可作为定时器的输入时钟。通用定时器定向增/减计数模式工作方式如图6-4所示。

978-7-111-36250-0-Chapter06-9.jpg

图6-4 通用定时器定向增/减计数模式

在事件管理器模块中,通用定时器2/4的定向增/减计数模式可以用于QEP电路。这时QEP电路为通用定时器2/4提供计数时钟和计数方向。这种模式可以在运动控制、电动机控制和电力电子应用领域用来确定外部事件发生的时间。

(4)连续增/减计数模式

这种计数模式与定向增/减计数模式基本相同,只是在连续增/减计数模式下,引脚TDIRA/B不再影响计数方向。当计数器的值达到周期寄存器的值(或FFFFH,定时器的初始值大于周期寄存器的值)时,定时器的计数方向才从递增计数变为递减计数。当计数器到0时,计数器的方向从递减计数变为递增计数。

在这种模式下,除了第一个计数周期外,定时器的计数周期都是2×TxPR个输入时钟定标后的周期。如果定时器计数的初始值是0,则第一个计数周期的时间与其他的周期相同。

通用定时器的初始值可以是0~FFFFH中的任意值。如果初始值大于周期寄存器的值,则定时器计数器将计数到FFFFH后清零,然后继续计数如同初始值为0一样。当初始值和周期寄存器的值相同时,计数器就减计数至0,再继续增计数如同初始值为0一样。当计数器的初始值在0与周期寄存器的值之间时,定时器就增计数至周期寄存器的值,并完成该周期,就像初始值与周期寄存器相同的情况。

周期、下溢、上溢匹配中断标志位、中断请求以及相关的操作都由各自的事件产生,与连续增计数模式相同。

通用定时器连续增/减计数模式的计数方式如图6-5所示。

978-7-111-36250-0-Chapter06-10.jpg

图6-5 通用定时器连续增/减计数模式

定时器中GPTCONA/B的计数方向指示位在定时器增计数时为1,减计数时为0。TCLKINA/B引脚提供的外部时钟和内部CPU时钟均可作为该模式下的定时器输入时钟,只是在该模式中方向控制引脚TDIRA/B不起作用。

通用定时器连续增/减计数模式特别适用于产生运动控制、电动机控制和电力电子应用领域中常用的中心对称的PWM波形。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈