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 samples, void *userdata);
50 
52 // LIFECYCLE
53 
64 
73 
79 void hw_adc_deinit(hw_adc_t *adc);
80 
92 uint8_t hw_adc_count(void);
93 
100 uint8_t hw_adc_gpio_channel(uint8_t pin);
101 
111 uint8_t hw_adc_gpio_pin(uint8_t channel);
112 
115 // METHODS
117 
132 uint16_t hw_adc_read_12(hw_adc_t *adc, uint16_t num_samples);
133 
141 uint16_t hw_adc_read_16(hw_adc_t *adc, uint16_t num_samples);
142 
150 float hw_adc_read_voltage(hw_adc_t *adc, uint16_t num_samples);
151 
159 float hw_adc_read_temperature(hw_adc_t *adc, uint16_t num_samples);
160 
191 bool hw_adc_read_dma(hw_adc_t *adc, uint16_t *buf, size_t samples,
192  size_t partitions, uint32_t freq,
193  hw_adc_dma_callback_t callback, void *userdata);
194 
bool hw_adc_read_dma(hw_adc_t *adc, uint16_t *buf, size_t samples, size_t partitions, uint32_t freq, 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.
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 number of external, GPIO-mappable 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.
bool(* hw_adc_dma_callback_t)(hw_adc_t *adc, uint16_t *buf, size_t samples, void *userdata)
DMA read completion callback.
Definition: adc.h:48