(精)atmega16寄存器笔记整理(2)

2019-04-22 09:20

1. 定时器0 以及定时器共同相关寄存器

(1)T/C 控制寄存器TCCR0 (主要作用:确定工作模式)

bit7 FOC0 bit6 bit5 bit4 bit3 bit2 CS02 bit1 CS01 bit0 CS00 WGM00 COM01 COM00 WGM01 FOC0: 强制输出比较位

FOC0仅在WGM00指明非PWM模式时才有效。但是,为了保证与未来器件的兼容性,在使用PWM 时,写TCCR0 要对其清零。对其写1 后,波形发生器将立即进行比较操作。比较匹配输出引脚 OC0 将按照COM01:0 的设置输出相应的电平。要注意FOC0 类似一个锁存信号,真正对强制输出比较起作用的是COM01:0 的设置。

FOC0不会引发任何中断,也不会在利用OCR0作为TOP的CTC模式下对定时器进行清零的操作。 读FOC0 的返回值永远为0。

WGM01 WGM01 波形产生模式

这几位控制计数器的计数序列,计数器的最大值TOP,以及产生何种波形。T/C 支持的模式有:普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM 模式。 模式 0 1 2 3 WGM01 0 0 1 1 WGM00 0 1 0 1 T/C 的工作模式 普通 相位修正PWM CTC 快速PWM TOP 0xFF 0xFF OCR0 0xFF OCR0的更新时间 立即更新 TOP 立即更新 TOP TOV0 的置位时刻 MAX BOTTOM MAX MAX COM01 COM00 比较匹配输出模式(位5和位4—COM:比较匹配输出模式。这决定了比较匹配发生时,输出管脚OC0的电平。当然,管脚首先要配置为输出。触发电平除了和下表的配置有关外,还和WGM确定的工作模式相关。)

这些位决定了比较匹配发生时输出引脚OC0 的电平。如果COM01:0 中的一位或全部都置位, OC0 以比较匹配输出的方式进行工作。同时其方向控制位要设置为1 以使能输出驱动器。

当OC0 连接到物理引脚上时, COM01:0 的功能依赖于WGM01:0 的设置。下表给出了当WGM01:0 设置为普通模式或CTC 模式时COM01:0 的功能。 比较输出模式,非PWM 模式 COM01 0 0 1 1 COM01 0 0 1 1 COM00 0 1 0 1 COM00 0 1 0 1 说明 正常的端口操作,不与OC0 相连接 比较匹配发生时OC0 取反 比较匹配发生时OC0 清零 比较匹配发生时OC0 置位 说明 正常的端口操作,不与OC0 相连接 保留 比较匹配发生时OC0A 清零,计数到TOP 时OC0 置位 比较匹配发生时OC0A 置位,计数到TOP 时OC0 清零 比较输出模式,快速PWM 模式 注意:一个特殊情况是OCR0 等于TOP,且COM01 置位。此时比较匹配将被忽略,而计数到TOP 时OC0 的动作继续有效。

比较输出模式,相位修正PWM 模式 COM01 0 0 1 1 COM00 0 1 0 1 说明 正常的端口操作,不与OC0 相连接 保留 在升序计数时发生比较匹配将清零OC0 ,降序计数时发生比较匹配将置位OC0 在升序计数时发生比较匹配将置位OC0 ,降序计数时发生比较匹配将清零 OC0 注意: 一个特殊情况是OCR0 等于TOP,且COM01 置位。此时比较匹配将被忽略,而计数到TOP 时OC0 的动作继续有效。

CS00 CS01 CS02 时钟选择(用于选择定时\\计数器0工作的时钟源。这也是AVR和51的不同之处,51的定时计数器只能用机器周期的12分频来工作,而AVR可以任意设置分频。)

用于选择T/C 的时钟源

CS02 0 0 0 0 1 1 1 1 CS01 0 0 1 1 0 0 1 1 CS00 0 1 0 1 0 1 0 1 说 明 无时钟, T/C 不工作 clkI/O/1 ( 没有预分频) clkI/O/8 ( 来自预分频器) clkI/O/64 ( 来自预分频器) clkI/O/256 ( 来自预分频器) clkI/O/1024 ( 来自预分频器) 时钟由T0 引脚输入,下降沿触发 时钟由T0 引脚输入,上升沿触发 如果T/C0 使用外部时钟,即使T0 被配置为输出,其上的电平变化仍然会驱动记数器。利用这一特性可通过软件控制记数。

(2)T/C 寄存器TCNT0

(T/C0计数寄存器—TCNT0.T/C0工作时,就是此8位寄存器的值在不断的加1变化。可对其进行读写操作。)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TCNT0[7:0] 通过T/C 寄存器可以直接对计数器的8 位数据进行读写访问。对TCNT0 寄存器的写访问将在下一个时钟阻止比较匹配。在计数器运行的过程中修改TCNT0 的数值有可能丢失一次TCNT0 和OCR0 的比较匹配

(3)输出比较寄存器OCR0

(输出比较寄存器包含一个8 位的数据,不间断地与计数器数值TCNT0 进行比较。匹配事件可以用来产生输出比较中断,或者用来在OC0 引脚上产生波形。8位寄存器,不断与TCNT0进行比较操作,在产生输出比较中断,改变OC0上的逻辑电平时,都要用到此寄存器)

(4)T/C中断屏蔽寄存器TIMSK ,

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 OCIE0 TOIE0 (5)T/C中断标志寄存器TIFR bit7 OCF2 TOIE0: ——T/C0 溢出中断使能

(当TOIE0 和状态寄存器的全局中断使能位I 都为‖1‖ 时,T/C0 的溢出中断使能。当T/C0发生溢出, 即TIFR 中的TOV0 位置位时,中断服务程序得以执行)。

OCIE0: T/C0 输出比较匹配中断使能 (当OCIE0 和状态寄存器的全局中断使能位I 都为‖1‖ 时,T/C0 的输出比较匹配中断使能。当T/C0 的比较匹配发生,即TIFR 中的OCF0 置位时,中断服务程序得以执行。)

TOIE1: ——T/C1 溢出中断使能

(当TOIE1 和状态寄存器的全局中断使能位I 都为‖1‖ 时,T/C1 的溢出中断使能。当T/C1发生溢出,即TIFR 中的TOV1 位置位时,中断服务程序得以执行)

OCIE1B: ——T/C1 输出比较 B 匹配中断使能

(当该位被设为\,且状态寄存器中的I 位被设为\时,使能T/C1 的输出比较B 匹配中断使能。

一旦TIFR 上的OCF1B 置位,CPU 即开始执行T/C1 输出比较B 匹配中断服务程序。)

OCIE1A: ——输出比较 A 匹配中断使能

(当该位被设为\,且状态寄存器中的I 位被设为\时, T/C1 的输出比较A 匹配中断使能。一旦

TIFR 上的OCF1A 置位,CPU 即开始执行T/C1 输出比较A 匹配中断服务程序。)

TICIE1: ——T/C1 输入捕捉中断使能

(当该位被设为\,且状态寄存器中的I 位被设为\时, T/C1 的输入捕捉中断使能。一旦TIFR 的ICF1 置位,CPU 即开始执行T/C1 输入捕捉中断服务程序。)

TOIE2: ——T/C2 溢出中断使能 (当TOIE2 和状态寄存器的全局中断使能位I 都为‖1‖ 时,T/C2 的溢出中断使能。当T/C2发生溢出,即TIFR 中的TOV2 位置位时,中断服务程序得以执行。)

OCIE2: ——T/C2 输出比较匹配中断使能

(当OCIE2 和状态寄存器的全局中断使能位I 都为‖1‖ 时,T/C2 的输出比较匹配中断使能。当T/C2 的比较匹配发生,即TIFR 中的OCF2 置位时,中断服务程序得以执行。 )

OCF0: ——输出比较标志0 (当T/C0 与OCR0( 输出比较寄存器0) 的值匹配时,OCF0 置位。此位在中断服务程序里硬件清零,也可以对其写1 来清零。当SREG 中的位I、OCIE0(T/C0 比较匹配中断使能) 和OCF0 都置位时,中断服务程序得到执行。 )

bit6 TOV2 bit5 ICF1 bit4 bit3 bit2 OCF1A OCF1B TOV1 bit1 OCF0 bit0 TOV0

TOV0: ——T/C0 溢出标志

(当T/C0 溢出时, TOV0 置位。执行相应的中断服务程序时此位硬件清零。此外, TOV0也可以通过写1 来清零。当SREG 中的位I、TOIE0(T/C0 溢出中断使能) 和TOV0 都置位时,中断服务程序得到执行。在相位修正PWM 模式中,当T/C0 在0x00 改变记数方向时, TOV0 置位。)

TOV1: ——T/C1 溢出标志

(该位的设置与T/C1 的工作方式有关。工作于普通模式和CTC 模式时,T/C1 溢出时TOV1置位。对工作在其它模式下的TOV1 标志位置位)

OCF1B: ——T/C1 输出比较 B 匹配标志位

(当TCNT1 与OCR1B 匹配成功时,该位被设为\。强制输出比较(FOC1B) 不会置位OCF1B。执行强制输出比较匹配B 中断服务程序时OCF1B 自动清零。也可以对其写入逻辑\来清除该标志位。)

OCF1A: ——T/C1 输出比较 A 匹配标志位

(当TCNT1 与OCR1A 匹配成功时,该位被设为\。强制输出比较(FOC1A) 不会置位OCF1A。执行强制输出比较匹配A 中断服务程序时OCF1A 自动清零。也可以对其写入逻辑\来清除该标志位。)

ICF1: ——T/C1 输入捕捉标志位

(外部引脚ICP1 出现捕捉事件时ICF1 置位。此外,当ICR1 作为计数器的TOP 值时,一旦计数器值

达到TOP, ICF1 也置位。执行输入捕捉中断服务程序时ICF1 自动清零。也可以对其写入逻辑\来清除该标志位。)

OCF2: ——输出比较标志2

(当T/C0 与OCR0( 输出比较寄存器0) 的值匹配时,OCF0 置位。此位在中断服务程序里硬件清零,

也可以对其写1 来清零。当SREG 中的位I、OCIE0(T/C0 比较匹配中断使能) 和OCF0 都置位时,中断服务程序得到执行。)

TOV2: ——T/C2 溢出标志

(当T/C2 溢出时, TOV2 置位。执行相应的中断服务程序时此位硬件清零。此外, TOV2也可以通过写1 来清零。当SREG 中的位I、TOIE2(T/C2 溢出中断使能) 和TOV2 都置位时,中断服务程序得到执行。在相位修正PWM 模式中,当T/C2 在0x00 改变记数方向时, TOV2 置位。)

(6)特殊功能IO寄存器SFIOR

bit7 bit6 bit5 ADTS2 ADTS1 ADTS0 bit4 – bit3 ACME bit2 PUD bit1 PSR2 bit0 PSR10 PSR10 置位时T/C1,T/C0的预分频器复位,操作完后,这一位由硬件自动清零,该位写0无效,T/C1,T/C0共用同一预分频器,预分频器复位对两个定时器都有影响,该位总是读为0

PSR2 当该位置1, T/C2 预分频器复位。操作完成后,该位被硬件清零。该位写0 无效。若内部CPU 时钟作为T/C2 时钟,该位读为0。当T/C2 工作在异步模式时,直到预分频器复位该位保持为1。

2、定时器1

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

bit7 COM1A1 bit6 bit5 bit4 bit3 bit2 bit1 WGM11 bit0 WGM10 COM1A0 COM1B1 COM1B0 FOC1A FOC1B COM1A1 ,COM1A0通道A 的比较输出模式 COM1B1 ,COM1B0 通道B 的比较输出模式

COM1A1 ,COM1A0与COM1B1 ,COM1B0分别控制OC1A与OC1B状态。如果COM1A1:0(COM1B1:0)的一位或两位被写入\, OC1A(OC1B) 输出功能将取代I/O 端口功能。此时OC1A(OC1B)相应的输出引脚数据方向控制必须置位以使能输出驱动器。

OC1A(OC1B) 与物理引脚相连时,COM1x1:0 的功能由WGM13:0 的设置决定 比较输出模式,非PWM COM1A1/COM1B1 COM1A0/COM1B0 0 0 1 1 COM1A1/COM1B1 0 0 0 1 0 1 COM1A0/COM1B0 0 1 说明 普通端口操作,非OC1A/OC1B 功能 比较匹配时OC1A/OC1B 电平取反 比较匹配时清零OC1A/OC1B( 输出低电平) 比较匹配时置位 OC1A/OC1B ( 输出高电平) 说明 普通端口操作,非OC1A/OC1B 功能 WGM13:0 = 15: 比较匹配时OC1A 取反 , OC1B 不占用物理引脚。WGM13:0 为其它值时为普通端口操作,非OC1A/OC1B 功能 比较匹配时清零OC1A/OC1B, OC1A/OC1B在TOP 时置位 比较匹配时置位 OC1A/OC1B, OC1A/OC1B在TOP 时清零 比较输出模式,快速 PWM 1 1 0 1 注意: 当OCR1A/OCR1B 等于TOP且COM1A1/COM1B1置位时,比较匹配被忽略,OC1A/OC1B 的置位/ 清零操作有效。

比较输出模式,相位修正及相频修正 PWM 模式 COM1A1/COM1B1 COM1A0/COM1B0 0 0 0 1 说明 普通端口操作,非OC1A/OC1B 功能 WGM13:0 = 9 或14: 比较匹配时OC1A 取反, OC1B 不占用物理引脚。 WGM13:0为其它值时 为普通端口操作,非OC1A/OC1B 功能 升序记数时比较匹配将清零OC1A/OC1B,降 序记数时比较匹配将置位OC1A/OC1B 升序记数时比较匹配将置位OC1A/OC1B,降序 记数时比较匹配将清零OC1A/OC1B 1 1 0 1 注意: OCR1A/OCR1B 等于TOP 且COM1A1/COM1B1 置位是一个特殊情况。


(精)atmega16寄存器笔记整理(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国润唇膏行业商业模式专项分析与企业投资环境研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: