8位T/C0相关寄存器(二)
发表:2023-08-29 12:02:22 阅读:64

8位T/C0相关寄存器(二)

>T/C寄存器——TCNT0

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

>输出比较寄存器——OCR0

输出比较寄存器包含一个8位的数据,不间断地与计数器数值TCNT0进行比较。匹配事件可以用来产生输出比较中断,或者用来在OC0引脚上产生波形。

>异步状态寄存器——ASSR

.Bit 3——AS0:异步T/CO

AS0为“0"时,T/C0由I/O时钟clkI/O驱动;AS0为“l”时,T/C由连接到TOSCl引脚的晶体振荡器驱动。改变ASO有可能破坏TCNT0、OCR0和TCCR0的内容。

·Bit2——TCNOUB:T/C0更新中

T/C0工作于异步模式时,写TCNT0将引起TCNOUB置位。当TCNT0从暂存寄存器更新完毕后TCNOUB由硬件清零。TCN20UB为0,表明TCNT0可以写入新值了。

·Bitl——0CR0UB:输出比较寄存器0更新中

T/C0工作于异步模式时,写0CR0将引起OCROUB置位。当0CR0从暂存寄存器更新完毕后0CROUB由硬件清零。0CRO UB为0,表明OCR0可以写入新值了。

·Bit0——TCRoUB:T/C控制寄存器0更新中

T/C0工作于异步模式时,写TCCR0将引起TCROUB置位。当TCCR0从暂存寄存器更新完毕后TCROUB由硬件清零。TCROUB为0,表明TCCR0可以写入新值了。

如果在更新忙标志置位的时候写上述任何一个寄存器,那么都将引起数据的破坏.并引发不必要的中断。对TCNT0、OCR0和TCCR0进行读取的机制是不同的,读到的TCNT0为实际的值,而OCR0和TCCR0则是从暂存寄存器中读取的。

>定时器/计数器中断屏蔽寄存器——TIMSK

.Bit l——0CIE0:T/C0输出比较匹配中断使能

当OCIE0和状态寄存器的全局中断使能位I都为“1"时,T/C0的输出比较匹配中断使能。当T/C0的比较匹配发生,即TIFR中的0CF0置位时,中断例程得以执行。

.Bit 0——TOIE0:T/C0溢出中断使能

当OCIE0和状态寄存器的全局中断使能位I都为“1"时,T/C0的溢出中断使能。当T/C0发生溢出,即TIFR中的TOV0位置位时,中断例程得以执行。

>定时器/计数器中断标志寄存器——TIFR

·Bit l——0CF0:输出比较标志0

当T/C0与OCR0(输出比较寄存器o)的值匹配时,0CF0置位。此位在中断例程里硬件清零,或者通过对其写1来清零。当SREG中的位I、OCIE0和OCF0都置位时,中断例程得到执行。

·Bit 0——TOV0:T/C0溢出标志

当T/C0溢出时,TOV0置位。执行相应的中断例程时,此位硬件清零。此外,TOV0也可以通过写“1"来清零。当SREG中的位I、TOIE0和TOV0都置位时,中断例程得到执行。在

PWM模式中,当T/C0在$00改变记数方向时,TOV0置位。

 

【电子街】推荐阅读:

定时器/计数器预分频器

计数器T/C0的特点

8位T/C0的计数单元

8位T/C0相关寄存器(一)