X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=ao_led.c;h=6c698b4be42192b6532f9278d617c4230743d64f;hp=f27714ed73a6a9a838075c3e900d8d9886ea3db0;hb=97cecb517cd7bf75e1219c76a93bfe6964c07052;hpb=3d5a5fc4db5f681e848202c4ee4099d2879677d6 diff --git a/ao_led.c b/ao_led.c index f27714ed..6c698b4b 100644 --- a/ao_led.c +++ b/ao_led.c @@ -17,37 +17,47 @@ #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; +}