#include <avr/delay.h>
#include <avr/interrupt.h>
#define uchar unsigned char
#define uint unsigned int
#define BIT(x) (1<<(x))
int main(void)
{
DDRA = 0xff;
MCUCR |= BIT(ISC11)|(ISC00)|(ISC01); //INT0上升沿中断 INT1下降沿中断
GICR |= BIT(INT0)|BIT(INT1); //使能 INT0 INT1
sei(); //使能全局中断
while(1);
}
//INTO中断服务函数
SIGNAL(SIG_INTERRUPT0)
{
GICR &= ~BIT(INT0); //关 INT0
PORTA = 0xff;
PORTA = 0x0f;
GICR |= BIT(INT0); //使能 INT0
}
//INTO中断服务函数
SIGNAL(SIG_INTERRUPT1)
{
GICR &= ~BIT(INT1); //关 INT1
PORTA = 0xff;
PORTA = 0xf0;
GICR |= BIT(INT1); //使能 INT1
}