← Back to ratslair.com
aboutsummaryrefslogtreecommitdiff
path: root/rgb_led.c
blob: 63d88e5f8b0594ac54b2e9afa74a8e731dabee81 (plain)
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
28
29
30
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);
}