TMR2的宽度与TMR0一样的也是8位,一般伴随着CCP模块和PWM功能一起出现。
8位宽度的TMR2定时器有一个前置预分频器和后置预分频器,同时还有一个周期控制寄存器与它配合一起实现针对单片机指令周期的计数。
TMR2只能作为定时器使用,无法对外部输入的脉冲作计数。
TMR2定时器与TMR0相比,最大的区别是TMR2有一个周期的控制寄存器PR2。PR2寄存器可以设定定时器的上限值。只要当TMR2的计数值和PR2的设定值相等时就会自动归0,同时产生一个中断。
当TMR2的计数值与PR2寄存器中所设定的数值相一致后,一睛个计数脉冲,的到来应会让TMR2溢出归0,注意:一个计数溢出归0后,并不一定产即产生TMR2IF中断标志,何时产生中断标志将取决于后分频器的分频比。如果选择的后分频比为1:8,则TMR2计数溢出8次后才产生1次中断。
//前分频器
//T2CKPS1 T2CKPS0
// 0 0 1 分频 TMR1时钟为晶振时钟/(4*1)
// 0 1 4 分频 TMR1时钟为晶振时钟/(4*4)
// 1 x 16 分频 TMR1时钟为晶振时钟/(4*16)
//后分频器
//TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0
// 0 0 0 0 1 分频
// 0 0 0 1 2 分频
// 0 0 1 0 3 分频
// 0 0 1 1 4 分频
// 0 1 0 0 5 分频
// 0 1 0 1 6 分频
// 0 1 1 0 7 分频
// 0 1 1 1 8 分频
// 1 0 0 0 9 分频
// 1 0 0 1 10分频
// 1 0 1 0 11分频
// 1 0 1 1 12分频
// 1 1 0 0 13分频
// 1 1 0 1 14分频
// 1 1 1 0 15分频
// 1 1 1 1 16分频