【发布时间】:2014-04-22 03:37:51
【问题描述】:
我正在使用 ATmega128 为外部中断编程。我将外部中断 0 和 1 设置为下降沿触发中断。中断必须计算按下开关的次数。但是当按键被按下一次时,中断被调用了 2 或 3 次,因此计数更高。这里有什么问题?
我的中断代码在这里
ISR(INT1_vect){
cli();
++push_cntr1;printf("p1:%d,",push_cntr1);
sei();
}
ISR(INT0_vect){
cli();
++push_cntr0;printf("p0:%d,",push_cntr0);
sei();
}
void interrupt_init(void) //enable interrupt 0 and 1.
{
EICRA |= (1<<ISC01)|(0<<ISC00)|(1<<ISC11)|(0<<ISC10);
EIFR = 0xFF;
EIMSK |= (1<<INT1)|(1<<INT0);
DDRD = 0x00;
}
int main(void) //main program
{
dev_init();
while(1){
process();
}
return 0;
}
【问题讨论】: