写这个是为了以后哪天要是忘记了,好让自己找到底。。。。
首先会用到下面几个寄存器。
T/C中断屏蔽寄存器-TIMSK0(Timer/Counter Interrupt Mask Register 0)
OCIE0B(Output Compare Match Interrupt Enabled 0 B):当OCIE0B 和状态寄存器的全局中断使能位I 都为”1” 时,T/C 的输出比较匹配B 中断使能。当T/C 的比较匹配发生,即TIFR0 中的OCF0B 置位时,中断服务程序得以执行。
OICE0A(Output Compare Match Interrupt Enabled 0 A):当OCIE0A 和状态寄存器的全局中断使能位I 都为”1” 时, T/C0 的输出比较匹配A 中断使能。当T/C0 的比较匹配发生,即TIFR0 中的OCF0A 置位时,中断服务程序得以执行。
TOIE0(T/C0 Overflow Interrupt Enable):当TOIE0 和状态寄存器的全局中断使能位I 都为”1” 时,T/C0 的溢出中断使能。当T/C0发生溢出,即TIFR0 中的TOV0 位置位时,中断服务程序得以执行。这次的程序里没有用到中断函数,所以嘛我会设为全0。
OCR0B(Output Compare Register 0B):
输出比较寄存器B 包含一个8 位的数据,不间断地与计数器数值TCNT0 进行比较。匹配事件可以用来产生输出比较中断,或者用来在OC0B 引脚上产生波形。
OCR0A(Output Compare Register 0A):
输出比较寄存器A 包含一个8 位的数据,不间断地与计数器数值TCNT0 进行比较。匹配事件可以用来产生输出比较中断,或者用来在OC0A 引脚上产生波形。