首页 理论教育 单片机基础寄存器及设置

单片机基础寄存器及设置

时间:2023-11-19 理论教育 版权反馈
【摘要】:基础寄存器主要涉及模块基本定时/计数功能,并为通道操作提供通用设置,主要包括定时器状态和控制寄存器、计数器寄存器以及计数器模寄存器等。当TPM计数器达到在模寄存器中预设值后该标记为置位,同时计数器复位为0x0000。如果在清除TOF标记时发生了另一个TPM溢出,则计数器复位而TOF仍将保持置位。在修改模寄存器之前,应复位TPM计数值,从而避免当预置数改变后,计数器的不正确溢出的情况。表8-6 计数器模寄存器高位表8-7 计数器模寄存器低位

单片机基础寄存器及设置

基础寄存器主要涉及模块基本定时/计数功能,并为通道操作提供通用设置,主要包括定时器状态和控制寄存器、计数器寄存器以及计数器模寄存器等。

1.定时器状态和控制寄存器TPMxSC

TPMxSC(Timer x Status and Control Register)是TPM模块中最重要一个控制寄存器,里面包含中断使能、TPM配置、时钟源和预分频器以及溢出状态标志等控制位,TPM状态和控制寄存器(TPMxRC)见表8-1。该寄存器的这些控制位与本定时器模块中的所有通道相关。

表8-1 TPM状态和控制寄存器(TPMxSC)

978-7-111-50417-7-Chapter08-2.jpg

●TOF:定时器溢出标志位。当TPM计数器达到在模寄存器中预设值后该标记为置位,同时计数器复位为0x0000。当TOF置位后可以通过读TPM状态和控制寄存器,然后向TOF写0清除TOF标记。如果在清除TOF标记时发生了另一个TPM溢出,则计数器复位而TOF仍将保持置位。复位系统将清零TOF,对TOF写操作无效。

0:TPM计数器未达到模值或未溢出。

1:TPM计数器溢出。

●TOIE:定时器溢出中断使能位。该位使能TPM溢出中断。如果TOIE被置位,当TOF等于1(即产生定时器溢出)时会产生一个中断。系统复位将清除TOIE。

0:TOF中断禁止(用于软件轮询)。

1:TOF中断使能。

●CPWMS:中心对齐PWM选择位。该位用于选择CPWM操作模式。在默认情况下,TPM提供输入捕捉、输出比较和边沿对齐PWM功能,并提供递增计数器操作。设置CPWMS位将重新配置TPM操作以上升/下降模式计数器运行。复位将清零CPWMS。

0:所有通道可作输入捕捉、输出比较、边沿对齐PWM模式,具体模式由MSnB和MSnA控制每个通道的状态和控制寄存器中的相应位来选择。

1:所有通道都可运行在中心对齐PWM模式下。

●CLKS[B:A]:时钟源选择位。这2个位用来禁止TPM系统或选择3个时钟源的一个来驱动计数器分频器,TPM时钟源选择如表8-2所示。固定系统时钟源在基于PLL时钟的系统中是唯一有效的。若没有PLL,固定系统时钟与总线速率时钟相同。外部时钟源通过TPM模块同步总线时钟,固定系统时钟源通过片上同步电路同步总线时钟。若有PLL但其无效时,固定系统时钟与总线速率时钟相同。

表8-2 TPM时钟源选择

978-7-111-50417-7-Chapter08-3.jpg(www.xing528.com)

●PS[2:0]:分频因子选择位。这3位选择8个分频因子中的一个用来分频TPM时钟输入,分频因子选择如表8-3所示。在任意时钟源同步或时钟源选择后,这个分频器会被确定,并影响所驱动的TPM系统的时钟源。当新数值被更新到该寄存器后,新的分频因子会在下个系统时钟周期产生影响。

表8-3 分频因子选择

978-7-111-50417-7-Chapter08-4.jpg

2.计数器寄存器TPMxCNTH:TPMxCNHTL

TPM计数器寄存器是一个16位的计数器,在模块中拆分成两个8位的独立寄存器使用,包含计数器寄存的高8位(TPMxCNTH)和计数器寄存的低8位(TPMxCNTL),如表8-4和表8-5所示。当读取TPMxCNTH或TPMxCNTL中的任意一个字节时,这两字节内容都会被锁存到一个缓冲区,并且这个缓冲区一直锁定并保持此时的数值,直到剩下的一个字节内容也被读出,这种一致机制就称为“互锁机制”。系统复位后将清空TPM计数器寄存器,同样,写任意值到TPMxCNTH或TPMxCNTL也可以清空TPM计数器。

表8-4 TPM计数器寄存器高位(TPMxCNTH)

978-7-111-50417-7-Chapter08-5.jpg

表8-5 TPM计数器寄存器低位(TPMxCNTL)

978-7-111-50417-7-Chapter08-6.jpg

3.计数器模寄存器TPMxMODH:TPMxMODL

TPM的模寄存器存放了TPM计数器的预置数值,是一个16位的寄存器也分成高、低两个8位寄存器,如表8-6和表8-7所示。当计数器达到模值之后,TPM计数器在下个时钟重新开始从0X0000计数,溢出标志(TOF)被置位。写TPMxMODH或TPMxMODL将禁止TOF位和溢出中断,直至另外一个字节被写完。复位后计数器模寄存器为0X0000,并且使得定时器计数器进入自运行状态。在修改模寄存器之前,应复位TPM计数值,从而避免当预置数改变后,计数器的不正确溢出的情况。

当写TPMxMODH或TPMxMODL其中的任一个字节时,该值会锁存到一个缓冲区里,同时寄存器按照CLKSB:CLKSA位决定缓冲区值的更新。如果CLKSB:CLKSA=00),则寄存器在第二个字节被写后更新;如果CLKSB:CLKSA≠0:0则寄存器在两个字节被写后更新。TPM计数值更新发生在TPMxMODH:TPMxMODL-1改变为TPMxMODH:TPMxMODL时,如果TPM计数器是一个自运行计数器,则更新会发生在TPM计数器值从0XFFFE变为0XFFFF后。

表8-6 计数器模寄存器高位(TPMxMODH)

978-7-111-50417-7-Chapter08-7.jpg

表8-7 计数器模寄存器低位(TPMxMODL)

978-7-111-50417-7-Chapter08-8.jpg

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

我要反馈