#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
ISR(PCINT0_vect){
PORTB|=(1<<7);
for (unsigned char i=0;i<256;i++){
PORTA^= i;
PORTA=~ i;
_delay_ms(200);
}
PORTB&=~(1<<7);
}
ISR(PCINT1_vect){
PORTB|=(1<<7);
for (int i=255;i>=0;i--){
PORTA^= i;
PORTA=~ i;
_delay_ms(200);
}
PORTB&=~(1<<7);
}
int i;
int main (void){
DDRA=0xff;
PORTA=0x00;
DDRB |=(1<<PB7);// LED output enable
PORTB|=(1<<PB0); // pint PCINT1 pullup
PORTE|=(1<<PE0); //PCINT8
PCMSK0 |= (1<<PCINT1); // enable interrupt
PCICR |= _BV(PCIE0);
PCMSK1 |= (1<<PCINT8);
PCICR |= _BV(PCIE1);
sei();
PORTA=0b00000000;
while (1){
for (int i=0;i<256;i++){
PORTA = i;
_delay_ms(200);
}
}
}