12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #ifndef _WS2812_H
- #define _WS2812_H
- #define WSGPIO 0
- #include "c_types.h"
- #include "user_interface.h"
- #include "ets_sys.h"
- #include "gpio.h"
- #include "ets_sys.h"
- #include "osapi.h"
- #include "math.h"
- #include "log/esp_log.h"
- /*------------------------------------------------------------------------------*/
- // Configuration Parameters
- /*------------------------------------------------------------------------------*/
- #define WS2811_COMPATIBLE 0 // set to make driver backwards compatable.
- #define WS2812_REFRESH_INTERVAL 60 // timer to update WS2812
- #define WS2812_RED_INDEX 1
- #define WS2812_GREEN_INDEX 0
- #define WS2812_BLUE_INDEX 2
- typedef enum {
- WS2812_OFF = 0,
- WS2812_RED,
- WS2812_BLUE,
- WS2812_GREEN,
- WS2812_MAGENTA,
- WS2812_ORANGE
- } WS2812_COLOR_et;
- typedef enum {
- WS2812_SOLID = 0,
- WS2812_PULSE
- } WS2812_PATTERN_et;
- typedef enum {
- WS2812_UP = 0,
- WS2812_DOWN
- } WS2812_DIRECTION_et;
- typedef struct {
- WS2812_COLOR_et color;
- WS2812_PATTERN_et pattern;
- uint8_t color_mask[3];
- uint32_t led_state;
- WS2812_DIRECTION_et direction;
- } WS2812_CONFIG_t;
- /*------------------------------------------------------------------------------*/
- //You will have to os_intr_lock(); os_intr_unlock();
- /*
- NOTE: The first byte stored is the last byte sent. 50us is required for sent data to latch to all LEDS
- Data is stored in the following format:
- [ byte1: green, byte2: red, byte3: blue]
- NOTE: Every function except ws2812_outBuffer is stored in Flash.
- */
- /*------------------------------------------------------------------------------*/
- // Function Prototypes
- /*------------------------------------------------------------------------------*/
- void WS2812_OutBuffer(int8_t * buffer, uint16_t length);
- void WS2812_SetColor(WS2812_COLOR_et color, WS2812_PATTERN_et pattern);
- // void ws2812_green(void);
- // void ws2812_red(void);
- // void ws2812_blue(void);
- // void ws2812_clear(void);
- /*------------------------------------------------------------------------------*/
- #endif
|