#define btn_pin 13
#define led_pin 9
#define PCICR_ B00000001
#define PCMSKx_ PCMSK0
#define PCMSK_ B00100000
#define PCINTx_vect PCINT0_vect
int counter = 0;
bool led_value = LOW;
long long last_mod_ledv = 0;
long long led_interval = 5000;
void setup() {
Serial.begin(9600);
pinMode(btn_pin, INPUT_PULLUP);
pinMode(led_pin, OUTPUT);
PCICR |= PCICR_; // Habilita IRQ na porta PB
PCMSKx_|= PCMSK_; // Habilita IRQ em D13
long long last_mod_ledv = millis();
}
int last_value = 0;
void loop() {
Serial.println((int)last_mod_ledv);
Serial.print("counter: ");
Serial.println(counter);
delay(100);
digitalWrite(led_pin, led_value);
if (led_value && millis() - last_mod_ledv > led_interval)
led_value = LOW;
last_value = 0;
}
ISR (PCINTx_vect) {
led_value = HIGH;
counter++;
last_mod_ledv = millis();
}