aboutsummaryrefslogtreecommitdiffstats
path: root/src/neopix.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/neopix.h')
-rw-r--r--src/neopix.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/neopix.h b/src/neopix.h
new file mode 100644
index 0000000..8b01038
--- /dev/null
+++ b/src/neopix.h
@@ -0,0 +1,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;
+}