/*
|
* ws2812b.h
|
*
|
* Created on: Jan 6, 2023
|
* Author: weihh
|
*/
|
|
#ifndef INC_WS2812B_H_
|
#define INC_WS2812B_H_
|
|
#include "stm32l4xx_hal.h"
|
|
#define WS2812_NUM 3
|
|
#define PIXEL_OFF 0 /* off */
|
#define PIXEL_B (0xFF<<0) /* blue */
|
#define PIXEL_R (0xFF<<8) /* red */
|
#define PIXEL_G (0xFF<<16) /* green */
|
#define PIXEL_W (0xFFFFFF) /* white */
|
|
/* Composition of 24 bits data: GRB888
|
* +----+----+----+----+----+----+----+----+----+
|
* | G7 | ...| G0 | R7 | ...| R0 | B7 | ...| B0 |
|
* +----+----+----+----+----+----+----+----+----+
|
*/
|
typedef struct pixel_s
|
{
|
uint32_t blue:8;
|
uint32_t red:8;
|
uint32_t green:8;
|
} pixel_t;
|
|
typedef union color_u
|
{
|
pixel_t pixel;
|
uint32_t data;
|
} color_t;
|
|
|
extern void ws2812b_init(void);
|
|
extern void ws2812b_reset(void);
|
|
extern int ws2812b_turn(int which, color_t color);
|
|
extern void ws2812b_blink(void);
|
|
#endif /* INC_WS2812B_H_ */
|