微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR单片机(学习ing)-ATMEGA16的定时/计数器

AVR单片机(学习ing)-ATMEGA16的定时/计数器

时间:11-27 来源:互联网 点击:

不介绍了,太多了,要是想详细了解,自己看datasheet吧,要是要的我给你~~)

5、16位定时/计数器1的寄存器

1)T/C1 控制寄存器A - TCCR1A

T/C1控制寄存器A用来设置通道A和B的输出模式,以及波形的发生模式,其定义:



• Bit 7:6 – COM1A1:0: 通道A 的比较输出模式
• Bit 5:4 – COM1B1:0: 通道B 的比较输出模式
COM1A1:0与COM1B1:0分别控制OC1A 与OC1B状态。如果COM1A1:0(COM1B1:0)的
一位或两位被写入"1”,OC1A(OC1B) 输出功能将取代I/O 端口功能。此时OC1A(OC1B)
相应的输出引脚数据方向控制必须置位以使能输出驱动器。
OC1A(OC1B) 与物理引脚相连时,COM1x1:0 的功能由WGM13:0 的设置决定。Table 44
给出当WGM13:0 设置为普通模式与CTC 模式( 非PWM) 时COM1x1:0 的功能定义。







• Bit 3 – FOC1A: 通道A 强制输出比较
• Bit 2 – FOC1B: 通道B 强制输出比较
FOC1A/FOC1B只有当WGM13:0指定为非PWM模式时被激活。为与未来器件兼容,工作
在PWM 模式下对TCCR1A 写入时,这两位必须清零。当FOC1A/FOC1B 位置1 ,立即
强制波形产生单元进行比较匹配。COM1x1:0 的设置改变 OC1A/OC1B 的输出。注意
FOC1A/FOC1B 位作为选通信号。COM1x1:0 位的值决定强制比较的效果。
在CTC 模式下使用OCR1A 作为TOP 值, FOC1A/FOC1B 选通即不会产生中断也不好
清除定时器。
FOC1A/FOC1B 位总是读为0。
• Bit 1:0 – WGM11:0: 波形发生模式
这两位与位于TCCR1B 寄存器的WGM13:2 相结合,用于控制计数器的计数序列——计
数器计数的上限值和确定波形发生器的工作模式( 见Table 47)。T/C 支持的工作模式有:



(这些东西还是要理解性的记忆的~~~~

2)T/C1 控制寄存器B - TCCR1B



• Bit 7 – ICNC1: 入捕捉噪声抑制器
置位ICNC1 将使能输入捕捉噪声抑制功能。此时外部引脚ICP1 的输入被滤波。其作用
是从ICP1 引脚连续进行4 次采样。如果4 个采样值都相等,那么信号送入边沿检测器。
因此使能该功能使得输入捕捉被延迟了4 个时钟周期。
• Bit 6 – ICES1: 输入捕捉触发沿选择
该位选择使用ICP1 上的哪个边沿触发捕获事件。ICES 为"0” 选择的是下降沿触发输入
捕捉; ICES1 为"1” 选择的是逻辑电平的上升沿触发输入捕捉。
按照ICES1 的设置捕获到一个事件后,计数器的数值被复制到ICR1 寄存器。捕获事件还
会置为ICF1。如果此时中断使能,输入捕捉事件即被触发。
当ICR1 用作TOP 值( 见TCCR1A 与TCCR1B 寄存器中WGM13:0 位的描述) 时,ICP1
与输入捕捉功能脱开,从而输入捕捉功能被禁用。
• Bit 5 – 保留位
该位保留。为保证与将来器件的兼容性,写TCCR1B 时,该位必须写入"0”。
• Bit 4:3 – WGM13:2: 波形发生模式
见TCCR1A 寄存器中的描述。
• Bit 2:0 – CS12:0: 时钟选择
这3 位用于选择T/C 的时钟源,见Figure 49 与 Figure 50。



3)T/C1计数寄存器 - TCNT1H 与TCNT1L





TCNT1H与TCNT1L组成了T/C1的数据寄存器TCNT1。通过它们可以直接对定时器/计数
器单元的16 位计数器进行读写访问。为保证CPU 对高字节与低字节的同时读写,必须
使用一个8 位临时高字节寄存器TEMP。TEMP 是所有的16 位寄存器共用的。
在计数器运行期间修改TCNT1的内容有可能丢失一次TCNT1与OCR1x的比较匹配操作。
写TCNT1 寄存器将在下一个定时器周期阻塞比较匹配。

4)输出比较寄存器



该寄存器中的16 位数据与TCNT1 寄存器中的计数值进行连续的比较,一旦数据匹配,将
产生一个输出比较中断,或改变OC1x 的输出逻辑电平。
输出比较寄存器长度为16 位。为保证CPU 对高字节与低字节的同时读写,必须使用一
个8 位临时高字节寄存器TEMP。TEMP 是所有的16 位寄存器共用的,详见P85 “ 访问
16 位寄存器” 。

5)输入捕捉寄存器1 - ICR1H 与ICR1L



当外部引脚ICP1(或T/C1的模拟比较器)有输入捕捉触发信号产生时,计数器TCNT1中的
值写入ICR1 中。ICR1 的设定值可作为计数器的TOP 值。
输入捕捉寄存器长度为16 位。为保证CPU 对高字节与低字节的同时读写,必须使用一
个8 位临时高字节寄存器TEMP。TEMP 是所有的16 位寄存器共用的。在PWM方式下,ICR1的

设定值将作为计数器计数上限值。

6)T/C1 中断屏蔽寄存器- TIMSK



• Bit 5 – TICIE1: T/C1 输入捕捉中断使能
当该位被设为"1”,且状态寄存器中的I 位被设为"1” 时, T/C1 的输入捕捉中断使能。一
旦TIFR 的ICF1 置位,CPU 即开始执行T/C1 输入捕捉中断服务程序( 见P43 “ 中断” )。
• Bit 4 – OCIE1A: 输出比较 A 匹配中断使能
当该位被设为"1”,且状态寄存器中的I 位被设为"1” 时, T/C1 的输出比较A 匹配中断使
能。一旦TIFR 上的OCF1A 置位,CPU 即开始执行T/C1 输出比较A 匹配中断服务程序。
• Bit 3 – OCIE1B: T/C1 输出比较 B 匹配中断使能
当该位被设为"1”,且状态寄存器中的I 位被设为"1” 时,使能T/C1 的输出比较B 匹配中
断使能。一旦TIFR 上的OCF1B 置位,CPU 即开始执行T/C1 输出比较B 匹配中断服务
程序。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top