picofuse

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 hw_adc_t;
25 
48 typedef bool (*hw_adc_dma_callback_t)(hw_adc_t *adc, uint16_t *buf,
49  size_t count, void *userdata);
50 
52 // LIFECYCLE
53 
64 
73 
79 void hw_adc_deinit(hw_adc_t *adc);
80 
90 uint8_t hw_adc_count(void);
91 
98 uint8_t hw_adc_gpio_channel(uint8_t pin);
99 
109 uint8_t hw_adc_gpio_pin(uint8_t channel);
110 
113 // METHODS
115 
130 uint16_t hw_adc_read_12(hw_adc_t *adc, uint16_t num_samples);
131 
139 uint16_t hw_adc_read_16(hw_adc_t *adc, uint16_t num_samples);
140 
148 float hw_adc_read_voltage(hw_adc_t *adc, uint16_t num_samples);
149 
157 float hw_adc_read_temperature(hw_adc_t *adc, uint16_t num_samples);
158 
188 bool hw_adc_read_dma(hw_adc_t *adc, uint16_t *buf, size_t count,
189  size_t partitions, hw_adc_dma_callback_t callback,
190  void *userdata);
191 
bool hw_adc_read_dma(hw_adc_t *adc, uint16_t *buf, size_t count, size_t partitions, hw_adc_dma_callback_t callback, void *userdata)
Start an asynchronous, DMA-driven read of raw samples.
uint16_t hw_adc_read_12(hw_adc_t *adc, uint16_t num_samples)
Read the current value from an ADC channel as a 12-bit value.
struct hw_gpio_t hw_gpio_t
GPIO logical pin structure.
Definition: gpio.h:50
float hw_adc_read_temperature(hw_adc_t *adc, uint16_t num_samples)
Read the current value from an ADC channel as a temperature.
hw_adc_t * hw_adc_init_pin(hw_gpio_t *gpio)
Initialize an ADC handle for a specific GPIO pin.
void hw_adc_deinit(hw_adc_t *adc)
Finalize and release an ADC handle.
GPIO (General Purpose Input/Output) interface.
uint8_t hw_adc_gpio_pin(uint8_t channel)
Get the GPIO pin number for an ADC channel.
bool(* hw_adc_dma_callback_t)(hw_adc_t *adc, uint16_t *buf, size_t count, void *userdata)
DMA read completion callback.
Definition: adc.h:48
float hw_adc_read_voltage(hw_adc_t *adc, uint16_t num_samples)
Read the current value from an ADC channel as a voltage.
uint8_t hw_adc_gpio_channel(uint8_t pin)
Get the ADC channel number for a GPIO pin on bank 0.
struct hw_adc_t hw_adc_t
Opaque ADC handle.
Definition: adc.h:24
uint8_t hw_adc_count(void)
Get the total number of available ADC channels.
uint16_t hw_adc_read_16(hw_adc_t *adc, uint16_t num_samples)
Read the current value from an ADC channel as a 16-bit value.
hw_adc_t * hw_adc_init_temperature(void)
Initialize an ADC handle for the internal temperature sensor channel.