From 3cc856aa952840e67f1d09290bde0635d570195a Mon Sep 17 00:00:00 2001 From: maniacbug Date: Sat, 25 Jun 2011 21:14:51 -0700 Subject: [PATCH] Changed the logic. Button press now toggles the LED. --- examples/led_remote/led_remote.pde | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/led_remote/led_remote.pde b/examples/led_remote/led_remote.pde index e3cb84d..e2b6152 100644 --- a/examples/led_remote/led_remote.pde +++ b/examples/led_remote/led_remote.pde @@ -81,6 +81,7 @@ role_e role; // uint8_t button_states[num_button_pins]; +uint8_t led_states[num_led_pins]; // // Setup @@ -165,11 +166,12 @@ void setup(void) // Turn LED's ON until we start getting keys if ( role == role_led ) { - int i = num_button_pins; + int i = num_led_pins; while(i--) { pinMode(button_pins[i],OUTPUT); - digitalWrite(button_pins[i],HIGH); + led_states[i] = HIGH; + digitalWrite(led_pins[i],led_states[i]); } } @@ -236,10 +238,16 @@ void loop(void) // Spew it printf("Got buttons\n\r"); - // Set all the LED's according to the buttons + // For each button, if the button now on, then toggle the LED int i = num_led_pins; while(i--) - digitalWrite(led_pins[i],button_states[i]); + { + if ( button_states[i] ) + { + led_states[i] ^= HIGH; + digitalWrite(led_pins[i],led_states[i]); + } + } } } }