/* Algotirma : watchdog interrupt akan menghitung
* waktu selama 8 detik, jika tidak ada tindakan
* maka arduino akan reset secara otomatis, jika
* ada tindakan (button ditekan) Loop akan berlanjut
*/
#include <avr/wdt.h>
byte LED = 13;
byte BUTTON = 2;
void interupsi(){
wdt_disable();
}
void setup() {
pinMode (LED,OUTPUT);
pinMode (BUTTON, INPUT);
Serial.begin(9600);
digitalWrite (LED, HIGH);
delay(100);
digitalWrite (LED,LOW);
delay(100);
digitalWrite (LED, HIGH);
delay(100);
digitalWrite (LED,LOW);
delay(100);
}
void loop() {
wdt_enable(WDTO_8S); //Timer 8 detik
//wdt_enable(WDTO_4S ) Timer 4 detik
//wdt_enable(WDTO_2S ) Timer 2 detik
//wdt_enable(WDTO_1S ) Timer 1 detik
Serial.println("Start");
attachInterrupt (digitalPinToInterrupt(BUTTON),interupsi,LOW);
delay(1000);
wdt_reset();
delay(10000); //pastikan delay ini lebih lama 2 detik dari timer wdt_enable
Serial.println("Loop Berlanjut");
delay(500);
}