AVR16中断求助
时间:10-02
整理:3721RD
点击:
#pragma interrupt_handler z1:2
z1()
{
PORTA=0x0f;
delay(500);
PORTA=0xf0;
delay(500);
}
外中断0,下降沿触发,本意是进入中断前四个led亮,然后后四个led亮,然后返回,结果前四个led亮,然后后四个led亮, 再次前四个led亮,然后后四个led亮
咋回事
z1()
{
PORTA=0x0f;
delay(500);
PORTA=0xf0;
delay(500);
}
外中断0,下降沿触发,本意是进入中断前四个led亮,然后后四个led亮,然后返回,结果前四个led亮,然后后四个led亮, 再次前四个led亮,然后后四个led亮
咋回事
可能是你按键产生的下降沿,你试试进入INT0中断后把INT0中断允许位关闭,中断处理程序结束后再打开中断允许位。
#pragma interrupt_handler z1:2
z1()
{
GICR & = ~(1<<6);
PORTA=0x0f;
delay(500);
PORTA=0xf0;
delay(500);
GICR |= (1<<6);
}
你试试