#include "ao.h"
-void
-ao_led_init(void)
-{
- P1SEL &= ~3;
- P1 &= ~3;
- P1DIR |= 3;
-}
+#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_for(uint8_t colors, uint16_t ticks)
+ao_led_toggle(uint8_t colors)
+{
+ P1 ^= (colors & ao_led_enable);
+}
+
+void
+ao_led_for(uint8_t colors, uint16_t ticks) __reentrant
{
ao_led_on(colors);
ao_delay(ticks);
ao_led_off(colors);
}
+void
+ao_led_init(uint8_t enable)
+{
+ ao_led_enable = enable;
+ P1SEL &= ~enable;
+ P1 &= ~enable;
+ P1DIR |= enable;
+}