#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
ISR(INT2_vect)
{
while(1){
for ( int i=8;i>=0;i--)
{
PORTA = (1<<i);
_delay_ms(500);
}
sei();
}
}
ISR(INT3_vect)
{
while(1){
for ( int i=0;i<8;i++)
{
PORTA = (1<<i);
_delay_ms(500);
}
sei();
}
}
int main (void)
{
DDRA = 0xff;
DDRB |=(1<<PB7);// LED output enable
PORTD |=_BV(PD2); // pin int0 PD0 pullup
PORTD |=_BV(PD3); // pin int0 PD0 pullup
EIMSK |=(1<<INT2)|(1<<INT3); // enable interrupt
EICRA |=_BV(ISC01)|_BV(ISC00)|_BV(ISC10)|_BV(ISC11); //falling edge activate INT0
sei();
while (1){
PORTA=0x00;
for (unsigned char i=0;i<8;i++)
{
PORTA = (1<<i);
_delay_ms(500);
}
}
}