理论教育 定时器/计数器0和1详解

定时器/计数器0和1详解

时间:2023-06-15 理论教育 版权反馈
【摘要】:2个16位定时器/计数器:定时器0和定时器1。两者可配置成定时器或事件计数器。由于一个机器周期由6个振荡周期组成,所以定时器的计数率为1/6振荡频率。除了“定时器”或“计数器”的选择外,定时器0和定时器1还有四种工作模式可供选择。由此可见,定时器2的中断可由TF2或EXF2产生,由产生中断的事件决定。即使T2EX脚出现捕获事件,计数器仍继续对T2脚的跳变或fOSC/6的脉冲进行计数。

定时器/计数器0和1详解

2个16位定时器/计数器:定时器0和定时器1。两者可配置成定时器或事件计数器。

当它用作“定时器”功能时,每经过一个机器周期,寄存器加1。因此,可以将一个机器周期看作计数周期。由于一个机器周期由6个振荡周期组成,所以定时器的计数率为1/6振荡频率。

当它用作“计数器”功能时,每当外部计数脚(T0或T1)发生一次1到0的跳变,寄存器加1。此功能中,外部输入脚每个机器周期被采样一次。

当在一个周期内采样为高电平而下一个周期内采样为低电平时,计数值加1。新的计数值在检测到跳变的周期的下一周期出现在寄存器中。由于识别1到0的跳变要占用2个机器周期(12个振荡周期),因此最大计数速率为1/12振荡频率。外部输入信号的占空比不受限制,但为了保证给定电平能在改变之前被检测到,外部输入信号的状态至少要保持一个完整的机器周期。除了“定时器”或“计数器”的选择外,定时器0和定时器1还有四种工作模式可供选择。

“定时器”和“计数器”功能通过特殊功能的定时/计数器模式控制寄存器(TMOD)的C/T位来选择。2个定时器/计数器都有四种工作模式,由TMOD的两位(M1,M0)进行选择。2个定时器/计数器的模式0、1和2相同,和模式3不同。

捕捉模式:定时器2工作在捕获模式时有两种情况,由T2CON的EXEN2位来选择。如果EXEN2=0,定时器2用作一个16位的定时器或计数器(由T2CON的C/T2位决定),溢出时将置位TF2(定时器2的溢出位)。

978-7-111-37992-8-Chapter02-19.jpg(www.daowen.com)

图2-6 定时器2工作在捕获模式

定时器2工作在捕获模式原理如图2-6所示。

只要IEN0寄存器的定时器2中断位被使能,TF2位就可用来产生中断。如果EXEN2=1,除上述操作外,定时器2还增加了一种特性——外部输入T2EX脚上1到0的跳变,将使定时器2、寄存器TL2和TH2的当前值分别装载到寄存器RCAP2L和RCAP2H中。

而且T2EX脚的跳变还将置位T2CON的EXF2位。EXF2位和TF2位一样,也可用来产生中断(两者共用定时器2溢出的中断向量)。由此可见,定时器2的中断可由TF2或EXF2产生,由产生中断的事件决定。

这种情况下,不会重装TL2和TH2。即使T2EX脚出现捕获事件,计数器仍继续对T2脚的跳变或fOSC/6的脉冲进行计数。因为RCAP2L和RCAP2H重装后其值并不受保护,所以一旦定时器2产生中断,中断必须在T2EX脚出现新的捕获事件之前进行处理。否则,T2EX脚上新的下降沿将使TL2和TH2的当前值重装到RCAP2L和RCAP2H中,从而破坏引起中断的RCAP2L和RCAP2H值。

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

我要反馈