不论我怎么设置它的触发方式,它始终都是遇到低电平就触发中断,就算输出是低电平他也触发中断,代码如下:
#include<avr/io.h>
#include<avr/interrupt.h>
#include<util/delay.h>
int main()
{
DDRD = 0Xff;
PORTD = 0Xff;
DDRB = 0XFF;
EICRA |= (1 << ISC11)|(1<< ISC01);//设置INT0下降沿中断,INT1下降沿中断
EIMSK |= (1 << INT0)|(1 << INT1); //使能INT0,INT1
sei(); //使能全局中断
while(1)
{
PORTB = 0xaa;
_delay_ms(50);
PORTB = 0x55;
_delay_ms(50);
}
}
ISR(SIG_INTERRUPT0) //INT0中断服务程序
{
PORTB = 0XFE;
EIFR |= (1 << INTF0); //向INT0写一清零标志位
}
ISR(SIG_INTERRUPT1) //INT1中断服务程序
{
PORTB = 0XBF;
EIFR |= (1 << INTF1); //向INT1写一清零标志位
}
请大虾赐教! |