aboutsummaryrefslogtreecommitdiffstats
path: root/src/neopix.h
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-11-20 01:35:41 +0100
committerLouis Burda <quent.burda@gmail.com>2022-11-20 01:35:53 +0100
commit5c2cb697aa8d03eed27b45f8dc67957c45a3d722 (patch)
tree056e08b0e4d4aa0d6f65f84043beb151d6c6245f /src/neopix.h
parent12a423434352af137bda357001ac824aa23fdf77 (diff)
downloadsxkbd-5c2cb697aa8d03eed27b45f8dc67957c45a3d722.tar.gz
sxkbd-5c2cb697aa8d03eed27b45f8dc67957c45a3d722.zip
Onboard neopixel led support
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;
+}