diff options
Diffstat (limited to 'ao_panic.c')
| -rw-r--r-- | ao_panic.c | 30 | 
1 files changed, 29 insertions, 1 deletions
| @@ -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); +	}  } | 
