From 41fef25bf05bb8fa377c9bcbbc7c0b5858cd20a1 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Thu, 27 Jun 2019 02:40:38 -0600 Subject: added factory reset function to Anduril, and reboot function for FSM --- spaghetti-monster/fsm-misc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'spaghetti-monster/fsm-misc.c') diff --git a/spaghetti-monster/fsm-misc.c b/spaghetti-monster/fsm-misc.c index 9f953fa..eced482 100644 --- a/spaghetti-monster/fsm-misc.c +++ b/spaghetti-monster/fsm-misc.c @@ -154,4 +154,21 @@ uint8_t triangle_wave(uint8_t phase) { } #endif +#ifdef USE_REBOOT +void reboot() { + #if 1 // WDT method, safer but larger + cli(); + WDTCR = 0xD8 | WDTO_15MS; + sei(); + wdt_reset(); + while (1) {} + #else // raw assembly method, doesn't reset registers or anything + __asm__ __volatile__ ( + "cli" "\n\t" + "rjmp 0x00" "\n\t" + ); + #endif +} +#endif + #endif -- cgit v1.2.3