Protues-ATmega8仿真
老杨工作室 young45@126.com
5.4 8 位定时/计数器 2—T/C2 介绍
前面学习了定时/计数器 0 的特点和应用,接下来我们学习 8 位定时/计数器
2 的特点和应用,关于 16 位定时/计数器 1 我们先放一放,因为 T/C2 也是 8 位的,
它和
T/C0
有很多的相似性。
T/C2 主要有一下特点:
1. 8bit 字长,最大可计数 0xFF;
2. 单通道计数器;
3. 比较匹配时清零定时器,自动重装;
4. 频率发生器;
5. 无奇边非对称,相位可调的脉宽调制 PWM
6. 10 位时钟预分频器;
7. 溢出和比较匹配中断源;
8. 允许使用从外部引脚的 32kHz 手表晶振作为独立的计数时钟源;
9.
可编程
8
位双向计数器。
我们和 T/C0 比较一下会发现,T/C2 比 T/C0 又多了些功能:上面的 3、5、
7、8 和 9。主要也就是多出了比较功能和 PWM 功能,我们可以把主要精力放在
这里,其他也很重要,但是我们已经有了 T/C0 的基础,可以和它比较进行学习。
同样在应用 T/C2 之前我们还是先了解几个相关的寄存器:TCNT2、OCR2、
TIMSK、TIFR、SFIOR 和 TCCR2。
一.T/C2 计数寄存器 TCNT2
该寄存器保存 T/C2 的计数值,其功能特点与 T/C0 计数寄存器 TCNT0 相同。
但是修改该寄存器的值有可能会丢失一次 TCNT2 与 OCR2 的匹配比较操作。
二.输出比较寄存器 OCR2
该寄存器中的 8 位数据用于同 TCNT2 寄存器中的计数值进行连续匹配比
较。一旦 TCNT 的计数值与 OCR2 的值比较相等,将产生一个输出比较匹配相
等的中断申请或改变 OC2 的输出逻辑电平。
三.T/C2 中断屏蔽寄存器 TIMSK
该寄存器的低 6 位 TOIE2 对 T/C2 的影响与该寄存器的第 0 位对 T/C0 的影
响是相同的,它就是 T/C2 的溢出中断允许标志位。
与 T/C0 不同的是:T/C2 还用到了第 7 位 OCIE2――T/C2 输出比较匹配中
断允许标志位。在全局中断
I
被置
1
的前提下,该位置
1
将使能
T/C2
的输出比
较匹配中断。若在 T/C2 上发生输出比较匹配时,则执行 T/C2 输出比较中断服
务程序。
四.T/C2 中断标志寄存器 TIFR
该寄存器的第 6 位 TOV2 是 T/C2 的溢出中断标志位,该位对 T/C2 的影响
和 TOV0 对 T/C0 的影响是相同的,就是 T/C2 产生溢出是该位置 1。但是在 T/C2
的 PWM 模式中,当 T/C2 计数器的值为 0x00 并改变计数方向时,TOV2 会被置
为 1。
该寄存器的第 7 位 OCF2 是 T/C2 的输出比较匹配中断标志位,当 T/C2 输出
比较匹配成功(
TCNT2=OCR2
)时,
OCF2
位被设为
1
。当转入
T/C2
输出比较