diff --git a/firmware/panic.c b/firmware/panic.c index dc9876e272..736d4bbf24 100644 --- a/firmware/panic.c +++ b/firmware/panic.c @@ -40,7 +40,8 @@ void panicf( const char *fmt, ...) #ifndef SIMULATOR #if CONFIG_LED == LED_REAL - bool state = true; + bool state = false; + int i = 0; #endif /* Disable interrupts */ @@ -90,11 +91,12 @@ void panicf( const char *fmt, ...) { #ifndef SIMULATOR #if CONFIG_LED == LED_REAL - volatile long i; - led (state); - state = !state; - - for (i = 0; i < 240000; ++i); + if (--i <= 0) + { + state = !state; + led(state); + i = 240000; + } #endif /* try to restart firmware if ON is pressed */ diff --git a/firmware/system.c b/firmware/system.c index bb7923792d..655b08d1bf 100644 --- a/firmware/system.c +++ b/firmware/system.c @@ -1017,7 +1017,8 @@ void UIE (unsigned int pc) __attribute__((section(".text"))); void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ { #if CONFIG_LED == LED_REAL - bool state = true; + bool state = false; + int i = 0; #endif unsigned int n; char str[32]; @@ -1043,11 +1044,12 @@ void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ while (1) { #if CONFIG_LED == LED_REAL - volatile int i; - led (state); - state = !state; - - for (i = 0; i < 240000; ++i); + if (--i <= 0) + { + state = !state; + led(state); + i = 240000; + } #endif /* try to restart firmware if ON is pressed */