← Back to ratslair.com
aboutsummaryrefslogtreecommitdiff
path: root/rgb_led.c
diff options
context:
space:
mode:
authorEdvin <[email protected]>2025-09-23 16:25:37 +0200
committerEdvin <[email protected]>2025-09-23 16:25:37 +0200
commitee756f7e231300cdf8e110441e0699a8de1abdfa (patch)
tree156020048073e38f98394f31abb0549c4db52c4f /rgb_led.c
First commit
Diffstat (limited to 'rgb_led.c')
-rw-r--r--rgb_led.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/rgb_led.c b/rgb_led.c
new file mode 100644
index 0000000..63d88e5
--- /dev/null
+++ b/rgb_led.c
@@ -0,0 +1,31 @@
+#include "driver/gpio.h"
+#include "rgb_led.h"
+
+void rgb_init_LED(rgb_led *LED, int R_pin, int G_pin, int B_pin)
+{
+ LED->R_pin = R_pin;
+ LED->G_pin = G_pin;
+ LED->B_pin = B_pin;
+ LED->color = rgb_black;
+
+ // Clear previous pin configuration.
+ gpio_reset_pin(LED->R_pin);
+ gpio_set_direction(LED->R_pin, GPIO_MODE_OUTPUT);
+ gpio_reset_pin(LED->G_pin);
+ gpio_set_direction(LED->G_pin, GPIO_MODE_OUTPUT);
+ gpio_reset_pin(LED->B_pin);
+ gpio_set_direction(LED->B_pin, GPIO_MODE_OUTPUT);
+
+ gpio_set_level(LED->R_pin, LED->color.R);
+ gpio_set_level(LED->G_pin, LED->color.G);
+ gpio_set_level(LED->B_pin, LED->color.B);
+}
+
+void rgb_set_color(rgb_led *LED, rgb_color color)
+{
+ LED->color = color;
+
+ gpio_set_level(LED->R_pin, LED->color.R);
+ gpio_set_level(LED->G_pin, LED->color.G);
+ gpio_set_level(LED->B_pin, LED->color.B);
+}