首页 理论教育 AVR单片机开发与T/C0寄存器解析

AVR单片机开发与T/C0寄存器解析

时间:2023-10-17 理论教育 版权反馈
【摘要】:写TCNT0寄存器将在下一个定时器时钟周期中阻塞比较匹配。在T/C0运行期间,比较匹配单元一直将寄存器TCNT0的计数值同寄存器OCR0的内容进行比较。一个FOC0选通脉冲不会产生任何的中断申请,也不影响计数器TCNT0和寄存器OCR0的值。表7-5 T/C0的时钟源选择

AVR单片机开发与T/C0寄存器解析

1.T/C0计数寄存器——TCNT0

978-7-111-35161-0-Chapter07-5.jpg

TCNT0是T/C0的计数值寄存器,该寄存器可以直接被MCU读写访问。写TCNT0寄存器将在下一个定时器时钟周期中阻塞比较匹配。因此,在计数器运行期间修改TCNT0的内容,有可能将丢失一次TCNT0与OCR0的匹配比较操作。

2.输出比较寄存器——OCR0

978-7-111-35161-0-Chapter07-6.jpg

8位寄存器OCR0中的数据用于同TCNT0寄存器中的计数值进行匹配比较。在T/C0运行期间,比较匹配单元一直将寄存器TCNT0的计数值同寄存器OCR0的内容进行比较。一旦TCNT0的计数值与OCR0的数据匹配相等,将产生一个输出比较匹配相等的中断申请,或改变OC2的输出逻辑电平

3.定时计数器中断屏蔽寄存器——TIMSK

978-7-111-35161-0-Chapter07-7.jpg

(1)OCIE2(OCIE0):T/C2(T/C0)输出比较匹配中断允许标志位

当OCIE2(OCIE0)被设为“1”,且状态寄存器中的I位被设为“1”时,将使能T/C2(T/C0)的输出比较匹配中断。若在T/C2(T/C0)上发生输出比较匹配,即OCF2=1(OCF0=1)时,则执行T/C2(T/C0)输出比较匹配中断服务程序。

(2)TOIE2(TOIE0):T/C2(T/C0)溢出中断允许标志位

当TOIE2(TOIE0)被设为“1”,且状态寄存器中的I位被设为“1”时,将使能T/C2(T/C0)溢出中断。若在T/C2(T/C0)上发生溢出,即TOV2=1(TOV0=1)时,则执行T/C2(T/C0)溢出中断服务程序。

4.定时计数器中断标志寄存器——TIFR

978-7-111-35161-0-Chapter07-8.jpg

(1)OCF2(OCF0):T/C2(T/C0)比较匹配输出的中断标志位

当T/C2(T/C0)输出比较匹配成功,即TCNT2=OCR2(TCNT0=OCR0)时,OCF2(OCF0)位被设为“1”。当转入T/C2(T/C0)输出比较匹配中断向量执行中断处理程序时,OCF2(OCF0)由硬件自动清零。写入一个逻辑“1”到OCF2(OCF0)标志位将清除该标志位。当寄存器SREG中的I位、OCIE2(OCIE0)以及OCF2(OCF0)均为“1”时,T/C2(T/C0)的输出比较匹配中断被执行

(2)TOV2(TOV0):T/C2(T/C0)溢出中断标志位

当T/C2(T/C0)产生溢出时,TOV2(TOV0)位被设为“1”。当转入T/C2(T/C0)溢出中断向量执行中断处理程序时,TOV2(TOV0)由硬件自动清零。写入一个逻辑“1”到TOV2(TOV0)标志位将清除该标志位。当寄存器SREG中的I位、TOIE2(TOIE0)以及TOV2(TOV0)均为“1”时,T/C2(T/C0)的溢出中断被执行。在PWM模式中,当T/C2(T/C0)计数器的值为0x00并改变计数方向时,TOV2(TOV0)自动被置为“1”。

5.T/C0控制寄存器——TCCR0

978-7-111-35161-0-Chapter07-9.jpg

8位寄存器TCCR0是T/C0的控制寄存器,它用于选择计数器的计数源、工作模式和比较输出的方式等。(www.xing528.com)

(1)FOC0:强制输出比较

FOC0位只在T/C0被设置为非PWM模式下工作时才有效,但为了保证同以后的器件兼容,在PWM模式下写TCCR0寄存器时,该位必须被写零。当将一个逻辑“1”写到FOC0位时,会强加在波形发生器上一个比较匹配成功信号,使波形发生器依据COM0[1∶0]位的设置而改变OC0输出状态。注意:FOC0的作用仅如同一个选通脉冲,而OC0的输出还是取决于COM0[1∶0]位的设置。

一个FOC0选通脉冲不会产生任何的中断申请,也不影响计数器TCNT0和寄存器OCR0的值。一旦一个真正的比较匹配发生,OC0的输出将根据COM0[1∶0]位的设置而更新。

(2)WGM0[1∶0]:波形发生模式

这两个标志位控制T/C0的计数与工作方式、计数器计数的上限值,以及确定波形发生器的工作模式,如表7-1所示。T/C0支持的工作模式有:普通模式、比较匹配时定时器清零(CTC)模式,以及两种脉宽调制(PWM)模式。

表7-1 T/C0的波形产生模式

978-7-111-35161-0-Chapter07-10.jpg

(3)COM0[1∶0]:比较匹配输出方式

这两个位用于控制比较输出引脚OC0的输出方式。如果COM0[1∶0]中的任何一位或两位被置“1”,OC0的输出将覆盖PB3引脚的通用I/O端口功能,但此时PB3引脚的数据方向寄存器DDRB3位必须置为输出方式。当引脚PB3作为OC0输出引脚时,其输出方式取决于COM0[1∶0]和WGM0[1∶0]的设定。

表7-2给出了在WGM0[1∶0]的设置为普通模式和CTC模式(非PWM)时,COM0[1∶0]位的功能定义。表7-3给出了在WGM0[1∶0]的设置为快速PWM模式时,COM0[1∶0]位的功能定义。表7-4给出了在WGM0[1∶0]设置为相位可调的PWM模式时,COM0[1∶0]位的功能定义。

表7-2 比较输出模式,非PWM模式(WGM=0、2)

978-7-111-35161-0-Chapter07-11.jpg

表7-3 比较输出模式,快速PWM模式(WGM=3)

978-7-111-35161-0-Chapter07-12.jpg

表7-4 比较输出模式,相位可调PWM模式(WGM=1)

978-7-111-35161-0-Chapter07-13.jpg

(4)CS0[2∶0]:T/C0时钟源选择

这3个标志位被用于选择设定T/C0的时钟源,如表7-5所示。

表7-5 T/C0的时钟源选择

978-7-111-35161-0-Chapter07-14.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈