Midnight Sun Firmware
Loading...
Searching...
No Matches
adc.h
1#pragma once
2
3/************************************************************************************************
4 * @file adc.h
5 *
6 * @brief ADC Library Header file
7 *
8 * @date 2024-11-02
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 "gpio.h"
20#include "status.h"
21
29#define NUM_ADC_CHANNELS 19U
31#define NUM_ADC_RANKS 16U
33#define ADC_TIMEOUT_MS 100U
34
36#define ADC_INVALID_CHANNEL 0U
38#define ADC_INVALID_RANK 0U
39
43typedef enum {
47} AdcMode;
48
58
70
79
88StatusCode adc_read_raw(GpioAddress *address, uint16_t *reading);
89
98StatusCode adc_read_converted(GpioAddress *address, uint16_t *reading);
99
103void adc_deinit(void);
104
105#ifdef MS_PLATFORM_X86
106
114StatusCode adc_set_reading(GpioAddress *address, uint16_t reading);
115#endif
116
StatusCode adc_read_raw(GpioAddress *address, uint16_t *reading)
Read the most recent raw value for a Gpio address.
Definition: test_accel_pedal.c:34
StatusCode adc_run(void)
Runs ADC conversions for all added channels.
Definition: adc.c:212
StatusCode adc_init(void)
Initialize the ADC instance.
Definition: adc.c:109
StatusCode adc_add_channel(GpioAddress *address)
Adds an ADC channel for a given Gpio.
Definition: adc.c:187
StatusCode adc_read_converted(GpioAddress *address, uint16_t *reading)
Read the most recent converted value for a Gpio address in mV.
Definition: adc.c:245
AdcMode
Available ADC modes.
Definition: adc.h:43
void adc_deinit(void)
Clears the ADC state.
Definition: adc.c:258
@ ADC_MODE_SINGLE
Definition: adc.h:44
@ ADC_MODE_CONTINUOUS
Definition: adc.h:45
@ NUM_ADC_MODES
Definition: adc.h:46
StatusCode
StatusCodes for various errors.
Definition: status.h:27
Port and pin data.
Definition: network.h:62