From 6edccc845d06f6863423cebc18172678ca4de312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Sat, 26 Mar 2016 14:58:21 +0100 Subject: [PATCH] improve: set only LED if changed --- main.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/main.c b/main.c index bb68c57..4966efa 100644 --- a/main.c +++ b/main.c @@ -206,23 +206,29 @@ static void clock_show_time(uint32_t time) uint8_t brightness_second = (255*(time%ticks_second))/ticks_second; // get brightness for seconds // set second LED clock_leds[led_second*3+0] = brightness_second; - //clock_leds[led_second*3+1] = 0; - //clock_leds[led_second*3+2] = 0; + //clock_leds[led_second*3+1] = 0; // clear other colors (minutes/hours indication) + //clock_leds[led_second*3+2] = 0; // clear other colors (minutes/hours indication) // set previous LED led_second = (led_second==0) ? WS2812B_LEDS-1 : led_second-1; // previous LED clock_leds[led_second*3+0] = 0xff-brightness_second; - //clock_leds[led_second*3+1] = 0; - //clock_leds[led_second*3+2] = 0; + //clock_leds[led_second*3+1] = 0; // clear other colors (minutes/hours indication) + //clock_leds[led_second*3+2] = 0; // clear other colors (minutes/hours indication) } /** @brief set the LEDs * @details set the LED colors on WS2812b LEDs * @note WS2812b LED color values need to be transmitted separately */ -static void leds_set(void) +static void clock_leds_set(void) { + static uint8_t clock_leds_old[WS2812B_LEDS*3] = {0}; // backup so to only set when value changed for (uint16_t i=0; i