Midnight Sun Firmware
Loading...
Searching...
No Matches
accel_pedal.h
1#pragma once
2
3/************************************************************************************************
4 * @file accel_pedal.h
5 *
6 * @brief Header file for acceleration pedal manager
7 *
8 * @date 2025-02-02
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13#include <stdint.h>
14
15/* Inter-component Headers */
16#include "status.h"
17
18/* Intra-component Headers */
19#include "front_controller.h"
20
27typedef struct {
28 uint16_t opamp_offset;
29 uint16_t lower_value;
30 uint16_t upper_value;
31 bool reversed;
33
34typedef struct AccelPedalStorage {
35 float accel_percentage;
36 float prev_accel_percentage;
37
38 AccelPedalCalibrationData calibration_data;
40
48
55
62
StatusCode accel_pedal_init(FrontControllerStorage *storage)
Initializes the acceleration pedal hardware interface loads calibration data from memory.
Definition: accel_pedal.c:97
StatusCode accel_pedal_run()
Reads the pedal percentage and applies deadzone and filtering before updating the storage.
Definition: accel_pedal.c:42
StatusCode accel_pedal_start()
Enables adc, dac, and opamp.
Definition: accel_pedal.c:108
StatusCode
StatusCodes for various errors.
Definition: status.h:27
Definition: accel_pedal.h:27
uint16_t opamp_offset
Definition: accel_pedal.h:28
uint16_t upper_value
Definition: accel_pedal.h:30
uint16_t lower_value
Definition: accel_pedal.h:29
Definition: accel_pedal.h:34
Front Controller storage.
Definition: front_controller.h:91