Midnight Sun Firmware
Loading...
Searching...
No Matches
button_led_manager.h
1#pragma once
2
3/************************************************************************************************
4 * @file button_led_manager.h
5 *
6 * @brief Button LED manager header file - SK6812 RGB LEDs
7 *
8 * @date 2025-09-27
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13#include <stdbool.h>
14#include <stdint.h>
15
16/* Inter-component Headers */
17
18/* Intra-component Headers */
19#include "steering.h"
20
27#define BUTTON_LED_MANAGER_BITS_PER_LED (24U)
28#define BUTTON_LED_MANAGER_DMA_BUF_LEN (512U)
29
30typedef struct {
31 uint8_t r;
32 uint8_t g;
33 uint8_t b;
34} LEDPixels;
35
36typedef struct ButtonLEDManager {
37 LEDPixels led_pixels[NUM_STEERING_BUTTONS];
38 uint16_t dma_buffer[BUTTON_LED_MANAGER_DMA_BUF_LEN];
42
50
60
68
74
80
StatusCode
StatusCodes for various errors.
Definition: status.h:27
bool button_led_manager_is_busy(void)
Check if the LED manager is currently transmitting data.
Definition: button_led_manager.c:286
StatusCode button_led_manager_update(void)
Force immediate update of all LEDs (call after setting colors)
Definition: button_led_manager.c:263
SteeringButtons
Steering buttons.
Definition: steering.h:36
StatusCode button_led_manager_clear_all(void)
Set all LEDs to off (black)
Definition: button_led_manager.c:294
StatusCode button_led_manager_set_color(SteeringButtons button, LEDPixels color_code)
Update a button's LED color (marks for update but doesn't transmit immediately)
Definition: button_led_manager.c:248
StatusCode button_led_manager_init(SteeringStorage *storage)
Initialize the button LED manager.
Definition: button_led_manager.c:226
Definition: button_led_manager.h:36
uint16_t dma_buffer[BUTTON_LED_MANAGER_DMA_BUF_LEN]
Definition: button_led_manager.h:38
bool is_transmitting
Definition: button_led_manager.h:40
LEDPixels led_pixels[NUM_STEERING_BUTTONS]
Definition: button_led_manager.h:37
bool needs_update
Definition: button_led_manager.h:39
Definition: button_led_manager.h:30
Steering storage.
Definition: steering.h:67