c-AVR Atmega64定时器溢出中断问题



感谢您提前阅读。请查看下面的代码,并注意TCCR0的中断不时被触发,这意味着ISR(TIMER0_OVF_vect(内部的内容正在运行。但是,我以相同的方式设置了TCCR2,但不会调用ISR(TIMER2_OVF_vect(。此外,ISR内部的内容只是用于测试目的的临时代码。

void init_timer0(void)
{
TCCR0 = 0x07;// 32 prescaler 
// 0000 0111b
// clkI/O/1024 (From prescaler)
TCNT0 = 10;
TCCR2 = 0x07;
//TCCR2 = 0x0E;
TCNT2 = 20;

TIMSK |= 0x01;
TIMSK |= 0x40;
}

volatile int i = 0;
ISR(TIMER2_OVF_vect)
{
TCNT2 = 20;

i = 1;
i = 2;

}

ISR(TIMER0_OVF_vect)
{
TCNT0 = 10;
}

数据表的表68说明TCCR2(摘录(:

描述
CS22 CS21 CS20
1 0 1 clkI/O/1024(来自预分频器(
1 1 1 T2引脚上的外部时钟源。时钟处于上升沿

最新更新