summaryrefslogtreecommitdiff
path: root/ao_panic.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-04-14 10:02:19 -0700
committerKeith Packard <keithp@keithp.com>2009-04-14 10:02:19 -0700
commitfb63262699d3a6fbf347d24efda8b01f75b7d0d3 (patch)
tree16909e9dee01b2939dd66ff1b8e80a70c2aace0f /ao_panic.c
parent7e4abf3a40c39d0ce4f466281bef9a464df85dd4 (diff)
Add comments, clean up white space, etc.
Various clean ups now that the basic code appears to work. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao_panic.c')
-rw-r--r--ao_panic.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/ao_panic.c b/ao_panic.c
index 0f8433dc..30ccce60 100644
--- a/ao_panic.c
+++ b/ao_panic.c
@@ -17,8 +17,36 @@
#include "ao.h"
+static void
+ao_panic_delay(uint8_t n)
+{
+ uint8_t i = 0;
+
+ while (n--)
+ while (--i)
+ _asm nop _endasm;
+}
+
void
ao_panic(uint8_t reason)
{
- (void) reason;
+ uint8_t n;
+
+ for (;;) {
+ ao_led_on(AO_LED_RED);
+ ao_beep(AO_BEEP_MID);
+ ao_panic_delay(2);
+ ao_led_off(AO_LED_RED);
+ ao_beep(AO_BEEP_OFF);
+ ao_panic_delay(2);
+ for (n = 0; n < reason; n++) {
+ ao_led_on(AO_LED_RED);
+ ao_beep(AO_BEEP_MID);
+ ao_panic_delay(1);
+ ao_led_off(AO_LED_RED);
+ ao_beep(AO_BEEP_OFF);
+ ao_panic_delay(1);
+ }
+ ao_panic_delay(2);
+ }
}