Merge remote-tracking branch 'mjb/freq_menu'
[fw/altos] / src / core / ao_panic.c
index b6ff65cccd9f18e46263407cc6d047fcfcf8ee7c..524330447b248b550c5ba068d2c3d74316a63ac9 100644 (file)
@@ -45,6 +45,10 @@ ao_panic(uint8_t reason)
 {
        uint8_t n;
 
+#if LOW_LEVEL_DEBUG
+       ao_cur_task = NULL;
+       printf ("panic %d\n", reason);
+#endif
        __critical for (;;) {
                ao_panic_delay(20);
                for (n = 0; n < 5; n++) {
@@ -58,7 +62,18 @@ ao_panic(uint8_t reason)
                ao_beep(AO_BEEP_OFF);
                ao_panic_delay(2);
 
-               for (n = 0; n < reason; n++) {
+#ifdef SDCC
+#pragma disable_warning 126
+#endif
+               if (reason & 0x40) {
+                       ao_led_on(AO_LED_RED);
+                       ao_beep(AO_BEEP_HIGH);
+                       ao_panic_delay(40);
+                       ao_led_off(AO_LED_RED);
+                       ao_beep(AO_BEEP_OFF);
+                       ao_panic_delay(10);
+               }
+               for (n = 0; n < (reason & 0x3f); n++) {
                        ao_led_on(AO_LED_RED);
                        ao_beep(AO_BEEP_MID);
                        ao_panic_delay(10);