long m = 0;
bool state = false;
bool interrupt = false;
void setup() {
Serial.begin(115200);
//LEDKY
DDRD |= (1<<3);
DDRD |= (1<<2);
//TLAČITKO
DDRD &= ~(1<<4);
PORTD |= (1<<4); //PULLUP
//prerušenie
PCICR |= 0b00000100;
PCMSK2 |= 0b00010000;
}
void loop() {
if(millis() - m > 500){
m = millis();
if(state == false){
state = !state;
}
else if(state == true){
state = !state;
}
}
if(state == true){
PORTD |= (1<<2);
}
else{
PORTD &= ~(1<<2);
}
Serial.print("interrupt = ");
Serial.println(interrupt);
//prerušenie
if(interrupt == true){
Serial.println("Interrupt Active !");
state = false;
PORTD &= ~(1<<2);
PORTD |= (1<<3);
delay(500);
interrupt = false;
PORTD &= ~(1<<3);
}
}
//prerušenie
ISR(PCINT2_vect){
if((PIND & (1<<4))==0){
interrupt = true;
}
}