Atmega16 定时器T0的应用
定时器工作模式:工作模式- T/C 和输出比较引脚的行为- 由波形发生模式(WGM21:0) 及比较输出模式
(COM21:0) 的控制位决定。比较输出模式对计数序列没有影响,而波形产生模式对计数序
列则有影响。COM21:0 控制PWM 输出是否反极性。非PWM 模式时COM21:0 控制输
出是否应该在比较匹配发生时置位、清零,或是电平取反(P113 " 比较匹配输出单元" )。
普通模式:普通模式(WGM21:0 = 0) 为最简单的工作模式。在此模式下计数器不停地累加。计到8
比特的最大值后(TOP = 0xFF),由于数值溢出计数器简单地返回到最小值0x00 重新开
始。在TCNT0 为零的同一个定时器时钟里T/C 溢出标志TOV2 置位。此时TOV2 有点象
第9 位,只是只能置位,不会清零。但由于定时器中断服务程序能够自动清零TOV2,因
此可以通过软件提高定时器的分辨率。在普通模式下没有什么需要特殊考虑的,用户可以
随时写入新的计数器数值。
输出比较单元可以用来产生中断。但是不推荐在普通模式下利用输出比较产生波形,因为
会占用太多的CPU 时间。
T/C 时序图:
8 位T/C 寄存器说明
T/C 控制寄存器- TCCR2
?Bit 7 – FOC2: 强制输出比较
FOC2仅在WGM指明非PWM模式时才有效。但是,为了保证与未来器件的兼容性,使用
PWM 时,写TCCR2 要对其清零。写1 后,波形发生器将立即进行比较操作。比较匹配输
出引脚 OC2 将按照COM21:0 的设置输出相应的电平。要注意FOC2 类似一个锁存信号,
真正对强制输出比较起作用的是COM21:0 的设置。
FOC2 不会引发任何中断,也不会在使用OCR2 作为TOP 的CTC 模式下对定时器进行清
零。
读FOC2 的返回值永远为0。
? Bit 6, 3 – WGM21:0: 波形产生模式
这几位控制计数器的计数序列,计数器最大值TOP 的来源,以及产生何种波形。T/C 支
持的模式有:普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM 模式,
详见 Table 50 与P114" 工作模式" 。
? Bit 5:4 – COM21:0: 比较匹配输出模式
这些位决定了比较匹配发生时输出引脚OC0 的电平。如果COM01:0 中的一位或全部都
置位, OC0 以比较匹配输出的方式进行工作。同时其方向控制位要设置为1 以使能输出
驱动。
当OC0 连接到物理引脚上时, COM01:0 的功能依赖于WGM01:0 的设置。Table 51 给
出了当WGM01:0 设置为普通模式或CTC 模式时COM01:0 的功能。
二、在进行相应的应用的时候请注意
不能对定时器TO赋初值,否则应用普通模式时,定时时间非常不准确。
定时时间的改变只能通过时钟源和分频系数确定
最后说一句:Atmega16数据手册做得很好,中文资料也多,非常容易去学习!!!!!!!!!!!
Atmega16定时器T 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)