首页 理论教育 通用定时器寄存器使用方法

通用定时器寄存器使用方法

时间:2023-06-29 理论教育 版权反馈
【摘要】:对于事件管理器EVB,该位起T4SWT3的作用,用通用定时器3的定时器使能位来启动通用定时器4。当T2CON中该位设置为1时,定时器l的周期寄存器对定时器2有效,忽略定时器2的周期定时器。位13 T1STAT:通用定时器1的状态,只读。

通用定时器寄存器使用方法

(1)通用定时器的控制寄存器(TxCON,x=1、2、3、4)

通用定时器的控制寄存器(Timer x Control Register,TxCON)设定定时器的操作模式,通过该寄存器设置通用定时器为以下不同的工作方式

●选择通用定时器4种计数模式中的一种。

●确定通用定时器使用内部时钟还是外部时钟。

●确定通用定时器输入时钟使用的预定标参数(范围1~1/128)。

●确定通用定时器比较寄存器重新装载的条件。

●使能或禁止通用定时器。

●使能或禁止通用定时器的比较操作。

●确定通用定时器2/4使用的周期寄存器是本身的还是通用定时器1/3的。

通用定时器x(x=1、2、3、4)控制寄存器TxCON各位的定义及使用方法叙述如下:

位15~14 Free,Soft:仿真控制位。

●00:一旦仿真悬挂(Emula tion Suspend),立即停止。

●01:一旦仿真悬挂,在当前定时器周期结束后停止。

●10,11:操作不受仿真悬挂影响。

位13 保留位。

位12~11 TMODE1,TMODE0:计数模式选择。

●00:停止/保持。

●01:连续增/减计数模式(Continuous u p/down c ount mode)。

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

●11:定向增/减计数模式(Directional up/down c ount mode)。

位10~8 TPS2~TPS0:输入时钟预分频(Prescaler)系数。

●000:x/1。

●001:x/2。

●010:x/4。

●011:x/8。

●100:x/16。

●101:x/32。

●110:x/64。

●111:x/128。

x为时钟频率,既可以是CPU时钟,也可以是外部时钟。

位7 T2SWT1/T4SWT3:对于事件管理器EVA,该位起T2SWT1的作用,用定时器1的定时器使能位来启动定时器2。在T1CON中,这一位是保留位。对于事件管理器EVB,该位起T4SWT3的作用,用通用定时器3的定时器使能位来启动通用定时器4。在T3CON中,这一位是保留位。

●0:使用自身的定时器使能位(TENABLE)。

●1:使用T1CON(对于EVA)或T3CON(对于EVB)中的定时器使能位来使能或禁止操作,忽略自身的定时器使能位。

位6 TENABLE:定时器使能位。

●0:禁止定时器操作(即定时器置于保持状态且复位预分频器)。

●1:使能定时器操作。

位5~4 TCLKS1~TCLKS0:时钟源。

●00:内部(CLKOUT)。

●01:外部(TCLKINA/B)。

●10:保留。

●11:正交脉冲编码电路(QEP)。

位3~2 TCLD1~TCLD0:定时器比较寄存器重装载(Reload)条件。

●00:计数器值为0时,重装载。

●01:计数器值为0或等于周期寄存器值时,重装载。

●10:立即重装载。

●11:保留。

位1 TECMPR:定时器比较使能位。

●0:禁止定时器比较操作。

●1:使能定时器比较操作。

位0 SELT1PR/SELT3PR:对EVA,该位为SELT1PR(周期寄存器选择位)。当T2CON中该位设置为1时,定时器l的周期寄存器对定时器2有效,忽略定时器2的周期定时器。在T1CON中,该位保留。对EVB,该位为SELT3PR(周期寄存器选择位)。当T4CON中该位设置为1时,定时器3的周期寄存器对定时器4有效,忽略定时器4的周期定时器。在T3CON中,该位保留。

●0:使用自身的周期寄存器。

●1:使用T1PR(在EVA模块)或T3PR(在EVB模块)作为周期寄存器,而忽略自身的周期寄存器。

(2)通用定时器的全局控制寄存器(GPTCONA/B)(www.xing528.com)

全局控制寄存器(GP Timer Control Register,GPTCONA/B)确定通用定时器实现具体任务需要采取的操作方式,并指明通用定时器的计数方向。GPTCONNA/B是可读/写寄存器,向状态位写数据时没有影响。全局通用定时器控制寄存器B(GPTCONB)和全局通用定时器控制寄存器A(GPTCONA)的功能相同,只是控制的定时器不同。

全局控制寄存器GPTCONA的格式如下:

位15 保留位。

位14 T2STAT:通用定时器2的状态,只读。

●0:减计数。

●1:增计数。

位13 T1STAT:通用定时器1的状态,只读。

●0:减计数。

●1:增计数。

位12~11 保留位。

位10~9 T2TOADC:定时器2事件启动模数转换。

●00:不启动模数转换。

●01:下溢中断标志启动模数转换。

●10:周期匹配中断标志启动模数转换。

●11:比较匹配中断标志启动模数转换。

位8~7 T1TOADC:定时器1事件启动模数转换。

●00:不启动模数转换。

●01:下溢中断标志启动模数转换。

●10:周期匹配中断标志启动模数转换。

●11:比较匹配中断标志启动模数转换。

位6 TCMPOE:定时器比较输出使能。该位有效时,使能或禁止定时器比较输出。

●0:定时器比较输出(T1PWM/T1CMP、T2PWM/T2CMP)置成高阻态。

●1:定时器比较输出由独立定时器比较逻辑驱动。

位5~4保留位。

位3~2 T2PIN:通用定时器2比较输出极性。

●00:强制低电平。

●01:低电平有效。

●10:高电平有效。

●11:强制高电平。

位1~0 T1PIN:通用定时器1比较输出极性。

●00:强制低电平。

●01:低电平有效。

●10:高电平有效。

●11:强制高电平。

通用定时器全局控制寄存器GPTCONB的位定义与GPTCONA相似,格式如下:

(3)通用定时器的比较寄存器(TxCMPR,x=1~4)

比较寄存器中存放了一个数值,它和通用定时器的计数器值不断比较,当比较匹配时,将产生下列事件:

●根据GPTCONA/B设置的模式,相关的比较输出引脚将产生跳变。

●相应的中断标志位置位。

●如果中断未被屏蔽,则产生一个外设中断请求。

通过设置TxCON的相关位,可以使能或禁止比较操作。在任何定时器工作模式下,比较操作和输出都可以被使能或禁止。

(4)通用定时器的周期寄存器(TxPR,x=1~4)

周期寄存器的值决定了定时器的周期。当周期寄存器的值和定时器的计数器值相等时,根据计数器所使用的计数方式,通用定时器复位为0,或继续向下递减计数。

(5)通用定时器的比较寄存器和周期寄存器的双缓冲

通用定时器的比较寄存器(TxCMPR)和周期寄存器(TxPR)都带有影子寄存器,在一个周期的任何时刻都可以对这两个寄存器进行读/写。然而当进行写操作时,新值写到影子寄存器。对于比较寄存器,只有当TxCON寄存器指定的特定定时器事件发生时,影子寄存器中的值才加载到比较寄存器中。对于周期寄存器,只有当计数寄存器TxCNT为0时,影子寄存器的值才能重新加载到周期寄存器。比较寄存器重载的条件可以是下面条件中的一个:

●影子缓冲寄存器被写入之后立即加载。

●下溢时,即通用定时器计数器值为0时。

●下溢或周期匹配时,即当计数值为0或计数值与周期寄存器的值相等时。

周期寄存器和比较寄存器的双缓冲特点允许应用程序在一个周期的任何时刻都可以更新它们,从而可以在下一周期改变定时器的周期和PWM的脉冲宽度。如果使用定时器产生PWM信号,那么快速地改变定时器周期就可快速改变PWM的载波频率。

此外,通用定时器的周期寄存器初始化应该在计数器初始化为非0值前进行,否则其值会一直保持不变,直到定时器产生溢出。

当禁止相应的比较操作时,比较寄存器是透明的,即新装载的值直接进入工作寄存器,事件管理器的所有比较寄存器都是这样。

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

我要反馈