ADC
Examples
#include "abov/system.h"
#include "abov/hal/gpio.h"
#include "abov/hal/adc.h"
static void myadc_gpio_init(void)
{
struct gpio_cfg cfg = {
.mode = GPIO_MODE_ANALOG,
.altfunc = true,
.altfunc_number = 3,
};
gpio_open(PERIPH_GPIOA, 1, &cfg);
}
static void myadc_init(void)
{
myadc_gpio_init();
adc_enable(PERIPH_ADC);
adc_set_mode(PERIPH_ADC, ADC_MODE_SINGLE_CONVERSION);
#if defined(DEFAULT_CONFIGURATION)
adc_set_clock_frequency(PERIPH_ADC, 1000000,
clk_get_peripheral_clock_source_frequency(PERIPH_ADC));
adc_set_trigger(PERIPH_ADC, ADC_TRIGGER_MANUAL);
#endif
adc_select_channel(PERIPH_ADC, ADC_CHANNEL_1);
}
int main(void)
{
myadc_init();
adc_start(PERIPH_ADC);
while (!adc_is_completed(PERIPH_ADC)) {
/* waiting */
}
uint32_t adc_result = adc_get_measurement(PERIPH_ADC);
adc_clear_event(PERIPH_ADC, ADC_EVENT_COMPLETE);
return 0;
}
HAL
LL
Enums
-
enum adc_mode_t
Values:
-
enumerator ADC_MODE_SINGLE_CONVERSION
-
enumerator ADC_MODE_SINGLE_CONVERSION_MULTI_CHANNEL
-
enumerator ADC_MODE_CONTINUOUS_CONVERSION
-
enumerator ADC_MODE_CONTINUOUS_CONVERSION_MULTI_CHANNEL
-
enumerator ADC_MODE_IDLE
-
enumerator ADC_MODE_SINGLE_CONVERSION
-
enum adc_channel_t
Values:
-
enumerator ADC_CHANNEL_0
-
enumerator ADC_CHANNEL_1
-
enumerator ADC_CHANNEL_2
-
enumerator ADC_CHANNEL_3
-
enumerator ADC_CHANNEL_4
-
enumerator ADC_CHANNEL_5
-
enumerator ADC_CHANNEL_6
-
enumerator ADC_CHANNEL_7
-
enumerator ADC_CHANNEL_8
-
enumerator ADC_CHANNEL_9
-
enumerator ADC_CHANNEL_10
-
enumerator ADC_CHANNEL_11
-
enumerator ADC_CHANNEL_12
-
enumerator ADC_CHANNEL_13
-
enumerator ADC_CHANNEL_14
-
enumerator ADC_CHANNEL_15
-
enumerator ADC_CHANNEL_MAX
-
enumerator ADC_CHANNEL_MASK
-
enumerator ADC_CHANNEL_0
-
enum adc_trigger_t
Values:
-
enumerator ADC_TRIGGER_MANUAL
-
enumerator ADC_TRIGGER_TIMER0_CC0
-
enumerator ADC_TRIGGER_TIMER1_CC0
-
enumerator ADC_TRIGGER_TIMER2_CC0
-
enumerator ADC_TRIGGER_TIMER3_CC0
-
enumerator ADC_TRIGGER_TIMER4_CC0
-
enumerator ADC_TRIGGER_TIMER5_CC0
-
enumerator ADC_TRIGGER_TIMER6_CC0
-
enumerator ADC_TRIGGER_TIMER7_CC0
-
enumerator ADC_TRIGGER_TIMER1_CC1
-
enumerator ADC_TRIGGER_TIMER1_CC2
-
enumerator ADC_TRIGGER_TIMER1_CC3
-
enumerator ADC_TRIGGER_TIMER2_CC2
-
enumerator ADC_TRIGGER_TIMER3_CC1
-
enumerator ADC_TRIGGER_TIMER3_TRGO
-
enumerator ADC_TRIGGER_EXTI11
-
enumerator ADC_TRIGGER_MAX
-
enumerator ADC_TRIGGER_MANUAL
Functions
-
void adc_reset(periph_t adc)
Reset ADC.
This function makes the given ADC the reset default state.
- Parameters
adc – [in] a peripheral enumerated in periph_t
-
void adc_enable_clock(periph_t adc)
Activate the ADC.
- Parameters
adc – [in] a peripheral enumerated in periph_t
-
void adc_disable_clock(periph_t adc)
Deactivate the ADC.
- Parameters
adc – [in] a peripheral enumerated in periph_t
-
void adc_set_mode(periph_t adc, adc_mode_t mode)
-
void adc_start(periph_t adc)
Start the ADC conversion.
- Parameters
adc – [in] a peripheral enumerated in periph_t
-
void adc_stop(periph_t adc)
Stop the ADC conversion.
- Parameters
adc – [in] a peripheral enumerated in periph_t
-
void adc_select_channel(periph_t adc, adc_channel_t channel)
-
void adc_set_trigger(periph_t adc, adc_trigger_t trigger)
-
adc_event_t adc_get_event(periph_t adc)
-
void adc_clear_event(periph_t adc, adc_event_t events)
-
void adc_set_sample_time(periph_t adc, adc_channel_t channel, uint32_t cycle)