任何人都可以找出爲什麼我的外部中斷0不起作用嗎?我正在使用帶有ATmega164P的AVR STK 500板。是否因爲D2引腳有兩個功能?外部中斷0不起作用
#include <asf.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#define F_CPU 8000000UL
#include <util/delay.h>
ISR(INT0_vect)
{
PORTB = 1;
for(int i = 0; i < 7; i++)
{
_delay_ms(500);
PORTB << 1;
}
}
int main (void)
{
board_init();
sei();
PORTD = 0xFF;
DDRD = 0x00;
PORTB = 0x00;
DDRB = 0xFF;
while(1)
{
PORTB = PIND;
}
}
什麼board_init()呢?你是否設置/啓用外部中斷? –
不要在ISR中延遲。 – JimmyB
爲了強調JimmyB的說法,不要在ISR中放置延遲。 –