#define set0(r,b) r &= ~(1<<b)
#define set1(r,b) r |= 1<<b
#define test(r,b) (r&(1<<b))
int hodnota;
int porovnanie;
void setup() {
for(int i = 4; i < 8; i++){
set0(DDRD, i);
set1(PORTD, i);
}
set1(DDRB, 0);
set0(PORTC, 0);
set1(SREG, 7);
set1(PCICR, PCIE2);
set1(PCMSK2, PCINT23);
set1(PCMSK2, PCINT22);
set1(PCMSK2, PCINT21);
set1(PCMSK2, PCINT20);
Serial.begin(9600);
}
void loop() {
hodnota = analogRead(A0);
int prevod = map(hodnota, 0, 1023, 1, 5);
if(prevod > porovnanie){
Serial.println("Sprava 1");
set1(PORTB, 0);
}
if(prevod < porovnanie){
Serial.println("Sprava 2");
set0(PORTB, 0);
}
}
ISR(PCINT2_vect){
if(test(PIND, 7) == 0){
porovnanie = 1;
}
if(test(PIND, 6) == 0){
porovnanie = 2;
}
if(test(PIND, 5) == 0){
porovnanie = 3;
}
if(test(PIND, 4) == 0){
porovnanie = 4;
}
}