aboutsummaryrefslogtreecommitdiffstats
path: root/src/neopix.h
blob: 0245373e8440ec46f86e3b0e75caa176a12d7bc6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

#include "hardware/pio.h"
#include "hardware/gpio.h"

#include <stdbool.h>

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

void neopix_init(struct neopix *pix, 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;
}