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 b43f5ec..aefefa4 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 6c698b4..5beed58 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 dcd1647..d52f2a6 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 84d8a1a..771d9c7 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 b07b174..505dc0c 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();