Fix up LED colors for each product.
authorKeith Packard <keithp@keithp.com>
Sat, 27 Feb 2010 23:14:04 +0000 (15:14 -0800)
committerKeith Packard <keithp@keithp.com>
Sat, 27 Feb 2010 23:14:04 +0000 (15:14 -0800)
Different products assign different color LEDs to the two available
LED drivers (P1_0, P1_1). Make the LED color pin assignments
per-product (in ao_pins.h), then deal with not always having a green LED.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/ao.h
src/ao_led.c
src/ao_packet.c
src/ao_pins.h
src/ao_teledongle.c

index b43f5ecd1132f190bda58524834d6fa8a585f570..aefefa461390216815c85e0226c5fa2b76448eba 100644 (file)
--- a/src/ao.h
+++ b/src/ao.h
@@ -263,8 +263,6 @@ ao_beep_init(void);
  */
 
 #define AO_LED_NONE    0
-#define AO_LED_GREEN   1
-#define AO_LED_RED     2
 
 /* Turn on the specified LEDs */
 void
index 6c698b4be42192b6532f9278d617c4230743d64f..5beed58de133bc5aafd341fe5426414b49bca2e6 100644 (file)
@@ -17,8 +17,6 @@
 
 #include "ao.h"
 
-#define AO_LED_ALL     (AO_LED_GREEN|AO_LED_RED)
-
 __pdata uint8_t ao_led_enable;
 
 void
index dcd1647c1ed1c7a6bf273b2307012325351d8bce..d52f2a68b89815ee9f89896dbc874e8eed966cc2 100644 (file)
@@ -67,7 +67,9 @@ ao_packet_recv(void)
 {
        uint8_t dma_done;
 
+#ifdef AO_LED_GREEN
        ao_led_on(AO_LED_GREEN);
+#endif
        ao_radio_get();
        ao_dma_set_transfer(ao_radio_dma,
                            &RFDXADDR,
@@ -86,7 +88,9 @@ ao_packet_recv(void)
                                   ao_radio_abort();
        dma_done = ao_radio_dma_done;
        ao_radio_put();
+#ifdef AO_LED_GREEN
        ao_led_off(AO_LED_GREEN);
+#endif
 
        if (dma_done & AO_DMA_DONE) {
                if (!(ao_rx_packet.status & PKT_APPEND_STATUS_1_CRC_OK))
index 84d8a1a1c830b38324a8bbab5c6b45dae38b9b43..771d9c7f7ac1791113fd5edea2a192f907c6988a 100644 (file)
@@ -28,6 +28,7 @@
        #define PACKET_HAS_MASTER       0
        #define PACKET_HAS_SLAVE        1
 
+       #define AO_LED_RED              1
        #define LEDS_AVAILABLE          (AO_LED_RED)
        #define HAS_EXTERNAL_TEMP       0
 #endif
@@ -41,7 +42,9 @@
        #define DBG_ON_P0               0
        #define PACKET_HAS_MASTER       1
        #define PACKET_HAS_SLAVE        0
-       #define LEDS_AVAILABLE          (AO_LED_RED)
+       #define AO_LED_RED              1
+       #define AO_LED_GREEN            2
+       #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
 #endif
 
 #if defined(TELEMETRUM_V_0_1)
@@ -53,6 +56,8 @@
        #define DBG_ON_P0               1
        #define PACKET_HAS_MASTER       0
        #define PACKET_HAS_SLAVE        1
+       #define AO_LED_RED              2
+       #define AO_LED_GREEN            1
        #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
        #define HAS_EXTERNAL_TEMP       1
 #endif
@@ -66,6 +71,8 @@
        #define DBG_ON_P0               1
        #define PACKET_HAS_MASTER       1
        #define PACKET_HAS_SLAVE        0
+       #define AO_LED_RED              2
+       #define AO_LED_GREEN            1
        #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
 #endif
 
@@ -78,6 +85,7 @@
        #define DBG_ON_P0               1
        #define PACKET_HAS_MASTER       1
        #define PACKET_HAS_SLAVE        0
+       #define AO_LED_RED              2
        #define LEDS_AVAILABLE          (AO_LED_RED)
 #endif
 
index b07b1746ab81635c874b725f642426f388d2acf6..505dc0cbfb0497c9ac67f4a2d98de96d923c4f02 100644 (file)
@@ -23,7 +23,7 @@ main(void)
        ao_clock_init();
 
        /* Turn on the LED until the system is stable */
-       ao_led_init(AO_LED_RED|AO_LED_GREEN);
+       ao_led_init(LEDS_AVAILABLE);
        ao_led_on(AO_LED_RED);
        ao_timer_init();
        ao_cmd_init();