Increase the initial accel/baro average to 1000 samples
[fw/altos] / ao_led.c
index f2bc179adfc21663a10d62f984ee5a7f25baeccd..6c698b4be42192b6532f9278d617c4230743d64f 100644 (file)
--- a/ao_led.c
+++ b/ao_led.c
 
 #include "ao.h"
 
+#define AO_LED_ALL     (AO_LED_GREEN|AO_LED_RED)
+
+__pdata uint8_t ao_led_enable;
+
 void
 ao_led_on(uint8_t colors)
 {
-       P1 |= colors;
+       P1 |= (colors & ao_led_enable);
 }
 
 void
 ao_led_off(uint8_t colors)
 {
-       P1 &= ~colors;
+       P1 &= ~(colors & ao_led_enable);
 }
 
 void
 ao_led_set(uint8_t colors)
 {
-       P1 = (P1 & ~3) | colors;
+       P1 = (P1 & ~(ao_led_enable)) | (colors & ao_led_enable);
+}
+
+void
+ao_led_toggle(uint8_t colors)
+{
+       P1 ^= (colors & ao_led_enable);
 }
 
 void
-ao_led_for(uint8_t colors, uint16_t ticks)
+ao_led_for(uint8_t colors, uint16_t ticks) __reentrant
 {
        ao_led_on(colors);
        ao_delay(ticks);
@@ -44,9 +54,10 @@ ao_led_for(uint8_t colors, uint16_t ticks)
 }
 
 void
-ao_led_init(void)
+ao_led_init(uint8_t enable)
 {
-       P1SEL &= ~3;
-       P1 &= ~3;
-       P1DIR |= 3;
+       ao_led_enable = enable;
+       P1SEL &= ~enable;
+       P1 &= ~enable;
+       P1DIR |= enable;
 }