aboutsummaryrefslogtreecommitdiffstats
path: root/src/neopix.h
blob: 8b01038df728063c303b7a8763a48df0ee780bd0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "hardware/pio.h"
#include "hardware/gpio.h"

struct neopix {
	PIO pio;
	uint sm;
	uint pin;
};

void neopix_init(struct neopix *pix, PIO pio, uint sm, uint pin);
void neopix_put(struct neopix *pix, uint32_t rgb);

inline uint32_t
neopix_u32rgb(uint8_t r, uint8_t g, uint8_t b) {
	uint32_t rgb;

	rgb = ((uint32_t) r) << 8;
	rgb |= ((uint32_t) g) << 16;
	rgb |= ((uint32_t) b) << 0;

	return rgb;
}