在我的项目中,我使用atmega32
. 但是,INT2
不工作。读取输入,但没有发生与其余中断INT0
和INT1
外部中断不同的情况。
代码
int main(void)
{
DDRC = 0xFF;
GICR|= (1 << INT0) | (1 << INT1) | (1 << INT2);
GICR|= (1 << INT2);
MCUCR |= (1 << ISC10) | (1 << ISC11)|(1 << ISC00) | (1 << ISC01);
MCUCSR |= (1 << ISC2); //Activating all interrupt to react to rising edges
sei();
while(1)
{
}
return 0;
}
ISR(INT0_vect)
{
PORTC ^= (1 << PC3);
_delay_ms(2000);
PORTC ^= (1 << PC3);
}
ISR(INT1_vect)
{
PORTC ^= (1 << PC0);
_delay_ms(2000);
PORTC ^= (1 << PC0);
}
ISR(INT2_vect)
{
PORTC ^= (1 << PC1);
_delay_ms(2000);
PORTC ^= (1 << PC1);
}
那么有什么问题,为什么它不起作用?