#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
uint8_t x = 0X00;
uint8_t flag;
ISR(PCINT2_vect)
{
if (PINK&=~(1<<3)) {
flag = 1 ;
}
if (PINK&=~(1<<4)) {
flag = 2 ;
}
}
int main (void)
{
DDRA |= 0XFF;
DDRK &= ~(1 << 0);
DDRK &= ~(1 << 1);
PORTK |= (1 << 3);
PORTK |= (1 << 4);
PCMSK2 |= (1 << PCINT19) | (1 << PCINT20);
PCICR |= _BV(PCIE2);
sei();
while (1) {
switch (flag) {
case 0:
PORTA = 0X00;
sei();
break;
case 1:
x++;
PORTA = x;
_delay_ms(500);
sei();
break;
case 2:
x--;
PORTA = x;
_delay_ms(500);
sei();
break;
}
}
}