#include <avr/wdt.h>
#define key1 A6
#define key2 A7
void WDT_setup(){
wdt_enable(WDTO_2S);
bitSet(WDTCSR, WDIE);
}
void setup() {
pinMode(key1, INPUT_PULLUP);
pinMode(key2, INPUT_PULLUP);
Serial.begin(115200);
Serial.println("__________________________________");
Serial.println("ЗАПУСК МІКРОКОНТРОЛЕРА");
if(bitRead(MCUSR, WDRF)) {
Serial.println("WDRF == 1 - перезавантаження сторожовим таймером");
}
WDT_setup();
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(300);
digitalWrite(LED_BUILTIN, LOW);
delay(300);
if (digitalRead(key1)==LOW) {
delay(5000);
}
if (digitalRead(key2)==LOW) {
wdt_disable();
Serial.println("Сторожовий таймер відключено");
delay(4000);
WDT_setup();
Serial.println("Роботу сторожового таймера відновлено");
}
wdt_reset();
}
ISR(WDT_vect) {
Serial.println("Спрацювання сторожового таймера");
}