diff options
Diffstat (limited to 'drivers/avr/ws2812.c')
-rw-r--r-- | drivers/avr/ws2812.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/drivers/avr/ws2812.c b/drivers/avr/ws2812.c index 0a02c6f7fd..5c733c4ab0 100644 --- a/drivers/avr/ws2812.c +++ b/drivers/avr/ws2812.c @@ -25,13 +25,17 @@ #include <avr/interrupt.h> #include <avr/io.h> #include <util/delay.h> -#include "debug.h" -#if !defined(LED_ARRAY) && defined(RGB_MATRIX_ENABLE) -// LED color buffer -LED_TYPE led[DRIVER_LED_TOTAL]; -# define LED_ARRAY led -#endif +/* + * Forward declare internal functions + * + * The functions take a byte-array and send to the data output as WS2812 bitstream. + * The length is the number of bytes to send - three per LED. + */ + +void ws2812_sendarray(uint8_t *array, uint16_t length); +void ws2812_sendarray_mask(uint8_t *array, uint16_t length, uint8_t pinmask); + #ifdef RGBW_BB_TWI @@ -135,23 +139,6 @@ unsigned char I2C_Write(unsigned char c) { #endif -#ifdef RGB_MATRIX_ENABLE -// Set an led in the buffer to a color -void inline ws2812_setled(int i, uint8_t r, uint8_t g, uint8_t b) { - led[i].r = r; - led[i].g = g; - led[i].b = b; -} - -void ws2812_setled_all(uint8_t r, uint8_t g, uint8_t b) { - for (int i = 0; i < sizeof(led) / sizeof(led[0]); i++) { - led[i].r = r; - led[i].g = g; - led[i].b = b; - } -} -#endif - // Setleds for standard RGB void inline ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { // ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); |