X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fkernel%2Fao_panic.c;h=bd55eb9cc8d148549fded82cb352a3f716039834;hp=c29cd8feb279d605e06ffafa50ff3a53f7864dbd;hb=HEAD;hpb=24167015705ae831692b95735968b04a876f935e diff --git a/src/kernel/ao_panic.c b/src/kernel/ao_panic.c index c29cd8fe..bd55eb9c 100644 --- a/src/kernel/ao_panic.c +++ b/src/kernel/ao_panic.c @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -38,10 +39,15 @@ ao_panic_delay(uint8_t n) { uint8_t i = 0, j = 0; - while (n--) + while (n--) { +#ifdef AO_PANIC_DELAY_SCALE + uint8_t s = AO_PANIC_DELAY_SCALE; + while (s--) +#endif while (--j) while (--i) ao_arch_nop(); + } } void @@ -56,23 +62,23 @@ ao_panic(uint8_t reason) ao_arch_block_interrupts(); for (;;) { ao_panic_delay(20); +#if HAS_BEEP for (n = 0; n < 5; n++) { - ao_led_on(AO_LED_PANIC); - ao_beep(AO_BEEP_HIGH); + ao_beep(AO_BEEP_HIGH_PANIC); ao_panic_delay(1); - ao_led_off(AO_LED_PANIC); - ao_beep(AO_BEEP_LOW); + ao_beep(AO_BEEP_LOW_PANIC); ao_panic_delay(1); } ao_beep(AO_BEEP_OFF); ao_panic_delay(2); +#endif #ifdef SDCC #pragma disable_warning 126 #endif if (reason & 0x40) { ao_led_on(AO_LED_PANIC); - ao_beep(AO_BEEP_HIGH); + ao_beep(AO_BEEP_HIGH_PANIC); ao_panic_delay(40); ao_led_off(AO_LED_PANIC); ao_beep(AO_BEEP_OFF); @@ -80,7 +86,7 @@ ao_panic(uint8_t reason) } for (n = 0; n < (reason & 0x3f); n++) { ao_led_on(AO_LED_PANIC); - ao_beep(AO_BEEP_MID); + ao_beep(AO_BEEP_MID_PANIC); ao_panic_delay(10); ao_led_off(AO_LED_PANIC); ao_beep(AO_BEEP_OFF);