diff options
author | root <root@no.no.james.local> | 2014-12-08 18:39:07 +0000 |
---|---|---|
committer | root <root@no.no.james.local> | 2014-12-08 18:39:07 +0000 |
commit | 804820fe687affa38a52e302179e4a2293cb1ffb (patch) | |
tree | acb784fd60af24d8c389e366d74409c75802dfa0 /lib_ws2812.h | |
download | rgb_ring-804820fe687affa38a52e302179e4a2293cb1ffb.tar.gz rgb_ring-804820fe687affa38a52e302179e4a2293cb1ffb.tar.bz2 rgb_ring-804820fe687affa38a52e302179e4a2293cb1ffb.zip |
fish
Diffstat (limited to 'lib_ws2812.h')
-rw-r--r-- | lib_ws2812.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/lib_ws2812.h b/lib_ws2812.h new file mode 100644 index 0000000..2142fa1 --- /dev/null +++ b/lib_ws2812.h @@ -0,0 +1,64 @@ +/* + * light weight WS2812 lib include + * + * Version 2.0a3 - Jan 18th 2014 + * Author: Tim (cpldcpu@gmail.com) + * + * Please do not change this file! All configuration is handled in "ws2812_config.h" + * + * License: GNU GPL v2 (see License.txt) + + + */ + +#ifndef LIGHT_WS2812_H_ +#define LIGHT_WS2812_H_ + +/* + * Structure of the LED array + */ + +struct RGB +{ + uint8_t g; + uint8_t r; + uint8_t b; +}; + +/* User Interface + * + * Input: + * ledarray: An array of GRB data describing the LED colors + * number_of_leds: The number of LEDs to write + * pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0) + * + * The functions will perform the following actions: + * - Set the data-out pin as output + * - Send out the LED data + * - Wait 50µs to reset the LEDs + */ + +void ws2812_setleds (struct RGB *ledarray, uint16_t number_of_leds); +void ws2812_setleds_pin (struct RGB *ledarray, uint16_t number_of_leds, + uint8_t pinmask); + +/* + * Old interface / 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); + + +/* + * Internal defines + */ + +#define CONCAT(a, b) a ## b +#define CONCAT_EXP(a, b) CONCAT(a, b) + + +#endif /* LIGHT_WS2812_H_ */ |