#include "ao.h"
+static void
+ao_panic_delay(uint8_t n)
+{
+ uint8_t i = 0, j = 0;
+
+ while (n--)
+ while (--j)
+ while (--i)
+ _asm nop _endasm;
+}
+
void
ao_panic(uint8_t reason)
{
- (void) reason;
+ uint8_t n;
+
+ __critical 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);
+ }
}