Skip to content

Instantly share code, notes, and snippets.

@swiftgeek
Created April 21, 2023 02:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swiftgeek/66891fe9dc569aede9fdaeecc16aacaa to your computer and use it in GitHub Desktop.
Save swiftgeek/66891fe9dc569aede9fdaeecc16aacaa to your computer and use it in GitHub Desktop.
For optiboot report
// ATmega328P watchdog test sketch
#include <avr/wdt.h>
int inByte = 0;
int led = 13;
void setup() {
wdt_disable();
Serial.begin(115200);
Serial.print("ATmega328P watchdog test sketch\r\n");
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
}
void loop() {
Serial.print( "Press key to enable watchdog:\r\n"
"1: WDTO_15MS\r\n"
"2: WDTO_30MS\r\n"
"3: WDTO_60MS\r\n"
"4: WDTO_120MS\r\n"
"5: WDTO_250MS\r\n"
"6: WDTO_500MS\r\n"
"7: WDTO_1S\r\n"
"8: WDTO_2S\r\n"
"9: WDTO_4S\r\n"
"0: WDTO_8S\r\n"
"any other key: jump back to 0x00\r\n\r\n");
while (Serial.available() <= 0) {
}
inByte = Serial.read();
switch (inByte) {
case '1':
wdt_enable(WDTO_15MS);
break;
case '2':
wdt_enable(WDTO_30MS);
break;
case '3':
wdt_enable(WDTO_60MS);
break;
case '4':
wdt_enable(WDTO_120MS);
break;
case '5':
wdt_enable(WDTO_250MS);
break;
case '6':
wdt_enable(WDTO_500MS);
break;
case '7':
wdt_enable(WDTO_1S);
break;
case '8':
wdt_enable(WDTO_2S);
break;
case '9':
wdt_enable(WDTO_4S);
break;
case '0':
wdt_enable(WDTO_8S);
break;
default:
Serial.print("Jump to 0x00\r\n\n");
Serial.flush();
asm volatile("jmp 0");
break;
}
digitalWrite(led, HIGH);
while (1) {};
}
@swiftgeek
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment