objc

adc.h
Go to the documentation of this file.
1 
10 #pragma once
11 #include "gpio.h"
12 #include <stdbool.h>
13 #include <stddef.h>
14 #include <stdint.h>
15 
17 // TYPES
18 
24 typedef struct hw_adc_t {
25  uint8_t channel;
27 } hw_adc_t;
28 
30 // LIFECYCLE
31 
41 uint8_t hw_adc_count(void);
42 
51 hw_adc_t hw_adc_init_pin(uint8_t pin);
52 
63 
73 void hw_adc_finalize(hw_adc_t *adc);
74 
76 // METHODS
77 
84 uint8_t hw_adc_gpio_channel(uint8_t gpio);
85 
92 static inline bool hw_adc_valid(hw_adc_t *adc) {
93  return adc && adc->channel < hw_adc_count();
94 }
95 
105 uint16_t hw_adc_read(hw_adc_t *adc);
106 
120 float hw_adc_read_voltage(hw_adc_t *adc);
121 
float hw_adc_read_temperature(hw_adc_t *adc)
Read the current value from an ADC channel as a temperature.
hw_gpio_t gpio
ADC GPIO pin number.
Definition: adc.h:26
uint8_t channel
ADC channel number (0, 1, etc.)
Definition: adc.h:25
GPIO (General Purpose Input/Output) interface.
uint16_t hw_adc_read(hw_adc_t *adc)
Read the current value from an ADC channel.
struct hw_adc_t hw_adc_t
ADC channel.
void hw_adc_finalize(hw_adc_t *adc)
Finalize and release an ADC interface.
float hw_adc_read_voltage(hw_adc_t *adc)
Read the current value from an ADC channel as a voltage.
static bool hw_adc_valid(hw_adc_t *adc)
Check if an ADC handle is valid and usable.
Definition: adc.h:92
ADC channel.
Definition: adc.h:24
hw_adc_t hw_adc_init_pin(uint8_t pin)
Initialize an ADC interface for a specific pin.
hw_adc_t hw_adc_init_temperature()
Initialize an ADC interface on which the temperature sensor is connected.
uint8_t hw_adc_count(void)
Get the total number of available ADC channels.
GPIO logical pin structure.
Definition: gpio.h:60
uint8_t hw_adc_gpio_channel(uint8_t gpio)
Get the ADC channel number for a specific GPIO pin.