diff options
| author | Selene ToyKeeper | 2023-11-19 01:47:40 -0700 |
|---|---|---|
| committer | Selene ToyKeeper | 2023-11-19 01:47:40 -0700 |
| commit | e6909adcb1d44797e097dcf93ee7459276a4516a (patch) | |
| tree | f9cf19bfe6d0d670750fa64a0b9a2e2d166392d9 /arch | |
| parent | temporary fix for aux LEDs on avrdd; needs proper refactoring (diff) | |
| download | anduril-e6909adcb1d44797e097dcf93ee7459276a4516a.tar.gz anduril-e6909adcb1d44797e097dcf93ee7459276a4516a.tar.bz2 anduril-e6909adcb1d44797e097dcf93ee7459276a4516a.zip | |
moved prevent_reboot_loop() and some other junk out of fsm/main.c
Diffstat (limited to '')
| -rw-r--r-- | arch/attiny1616.c | 6 | ||||
| -rw-r--r-- | arch/attiny1616.h | 2 | ||||
| -rw-r--r-- | arch/attiny1634.c | 6 | ||||
| -rw-r--r-- | arch/attiny1634.h | 2 | ||||
| -rw-r--r-- | arch/attiny85.c | 21 | ||||
| -rw-r--r-- | arch/attiny85.h | 2 |
6 files changed, 39 insertions, 0 deletions
diff --git a/arch/attiny1616.c b/arch/attiny1616.c index 3b170bb..a3ead7e 100644 --- a/arch/attiny1616.c +++ b/arch/attiny1616.c @@ -145,3 +145,9 @@ void reboot() { while (1) {} } +inline void prevent_reboot_loop() { + // prevent WDT from rebooting MCU again + RSTCTRL.RSTFR &= ~(RSTCTRL_WDRF_bm); // reset status flag + wdt_disable(); +} + diff --git a/arch/attiny1616.h b/arch/attiny1616.h index 5989785..b4e17fc 100644 --- a/arch/attiny1616.h +++ b/arch/attiny1616.h @@ -94,3 +94,5 @@ inline void mcu_pcint_off(); void reboot(); +inline void prevent_reboot_loop(); + diff --git a/arch/attiny1634.c b/arch/attiny1634.c index d4b3767..0737a81 100644 --- a/arch/attiny1634.c +++ b/arch/attiny1634.c @@ -123,3 +123,9 @@ void reboot() { while (1) {} } +inline void prevent_reboot_loop() { + // prevent WDT from rebooting MCU again + MCUSR &= ~(1<<WDRF); // reset status flag + wdt_disable(); +} + diff --git a/arch/attiny1634.h b/arch/attiny1634.h index e01abad..fb89fa8 100644 --- a/arch/attiny1634.h +++ b/arch/attiny1634.h @@ -96,3 +96,5 @@ inline void mcu_pcint_off(); void reboot(); +inline void prevent_reboot_loop(); + diff --git a/arch/attiny85.c b/arch/attiny85.c index 40cbcfe..0d2d7fe 100644 --- a/arch/attiny85.c +++ b/arch/attiny85.c @@ -165,3 +165,24 @@ void reboot() { while (1) {} } +inline void prevent_reboot_loop() { + // prevent WDT from rebooting MCU again + MCUSR &= ~(1<<WDRF); // reset status flag + wdt_disable(); +} + + +#if 0 // example for one way of creating a 4th PWM channel +// 4th PWM channel requires manually turning the pin on/off via interrupt :( +ISR(TIMER1_OVF_vect) { + //bitClear(PORTB, 3); + PORTB &= 0b11110111; + //PORTB |= 0b00001000; +} +ISR(TIMER1_COMPA_vect) { + //if (!bitRead(TIFR,TOV1)) bitSet(PORTB, 3); + if (! (TIFR & (1<<TOV1))) PORTB |= 0b00001000; + //if (! (TIFR & (1<<TOV1))) PORTB &= 0b11110111; +} +#endif + diff --git a/arch/attiny85.h b/arch/attiny85.h index 840079c..2753fd7 100644 --- a/arch/attiny85.h +++ b/arch/attiny85.h @@ -89,3 +89,5 @@ inline void mcu_pcint_off(); void reboot(); +inline void prevent_reboot_loop(); + |
