Midnight Sun Firmware
Loading...
Searching...
No Matches
button_manager.h
1#pragma once
2
3/************************************************************************************************
4 * @file button_manager.h
5 *
6 * @brief Header file for managing and polling multiple buttons on the steering board, including
7 * drive modes, hazards, turn signals, cruise control, and regen.
8 *
9 * @date 2025-07-28
10 * @author Midnight Sun Team #24 - MSXVI
11 ************************************************************************************************/
12
13/* Standard library Headers */
14#include <stdbool.h>
15
16/* Inter-component Headers */
17#include "gpio.h"
18
19/* Intra-component Headers */
20#include "button.h"
21
28#define BUTTON_MANAGER_DEBUG 0
30#define BUTTON_MANAGER_MAX_BUTTONS 10
35typedef struct {
37 uint8_t num_buttons;
39
48
56
StatusCode button_manager_update(ButtonManager *manager)
Update the button manager.
Definition: button_manager.c:244
StatusCode button_manager_init(ButtonManager *manager)
Initialize the button manager.
Definition: button_manager.c:230
#define BUTTON_MANAGER_MAX_BUTTONS
Definition: button_manager.h:30
StatusCode
StatusCodes for various errors.
Definition: status.h:27
Button Manager structure.
Definition: button_manager.h:35
uint8_t num_buttons
Definition: button_manager.h:37
Button instance structure.
Definition: button.h:58