diff options
-rw-r--r-- | common.c | 15 | ||||
-rw-r--r-- | common.h | 7 |
2 files changed, 18 insertions, 4 deletions
@@ -1,4 +1,19 @@ #include "common.h" +#include "pwm.h" volatile uint8_t wakeup = 0; +/* shutdown device signaling internal error + */ +void shutdownError () { + pwmSet (0, PWM_ON); + for (uint8_t i = 1; i < PWM_LED_COUNT-1; i++) { + pwmSet (i, PWM_OFF); + } + pwmSet (PWM_LED_COUNT-1, PWM_ON); + sleep_enable (); + while (1) { + sleep_cpu (); + } +} + @@ -17,10 +17,7 @@ #include <avr/interrupt.h> #define assert(x) if (!(x)) { \ puts("assert in " __FILE__ ":" #x); \ - sleep_enable (); \ - while (1) { \ - sleep_cpu (); \ - } \ + shutdownError (); \ } #include <stdbool.h> @@ -45,5 +42,7 @@ enum { wakeup &= ~(1 << x); \ } +void shutdownError (); + #endif /* COMMON_H */ |