diff options
-rw-r--r-- | include/libopencm3/stm32/common/adc_common_v2.h | 1 | ||||
-rw-r--r-- | include/libopencm3/stm32/common/adc_common_v2_multi.h | 2 | ||||
-rw-r--r-- | include/libopencm3/stm32/f0/adc.h | 3 | ||||
-rw-r--r-- | include/libopencm3/stm32/f3/adc.h | 2 | ||||
-rw-r--r-- | lib/stm32/common/adc_common_v2.c | 17 | ||||
-rw-r--r-- | lib/stm32/f0/adc.c | 30 | ||||
-rw-r--r-- | lib/stm32/f3/adc.c | 19 |
7 files changed, 20 insertions, 54 deletions
diff --git a/include/libopencm3/stm32/common/adc_common_v2.h b/include/libopencm3/stm32/common/adc_common_v2.h index 27cb5dea..a3ec05eb 100644 --- a/include/libopencm3/stm32/common/adc_common_v2.h +++ b/include/libopencm3/stm32/common/adc_common_v2.h @@ -201,6 +201,7 @@ void adc_disable_overrun_interrupt(uint32_t adc); bool adc_get_overrun_flag(uint32_t adc); void adc_clear_overrun_flag(uint32_t adc); uint32_t adc_read_regular(uint32_t adc); +void adc_start_conversion_regular(uint32_t adc); END_DECLS diff --git a/include/libopencm3/stm32/common/adc_common_v2_multi.h b/include/libopencm3/stm32/common/adc_common_v2_multi.h index fb630415..4f1fd14d 100644 --- a/include/libopencm3/stm32/common/adc_common_v2_multi.h +++ b/include/libopencm3/stm32/common/adc_common_v2_multi.h @@ -149,6 +149,8 @@ specific memorymap.h header before including this header file.*/ BEGIN_DECLS +void adc_set_sample_time(uint32_t adc, uint8_t channel, uint8_t time); + END_DECLS #endif diff --git a/include/libopencm3/stm32/f0/adc.h b/include/libopencm3/stm32/f0/adc.h index 8d7fa950..de3d5100 100644 --- a/include/libopencm3/stm32/f0/adc.h +++ b/include/libopencm3/stm32/f0/adc.h @@ -166,9 +166,6 @@ void adc_enable_external_trigger_regular(uint32_t adc, uint32_t trigger, uint32_t polarity); void adc_disable_external_trigger_regular(uint32_t adc); -/* Conversion API */ -void adc_start_conversion_regular(uint32_t adc); - /* Interrupt configuration */ void adc_enable_watchdog_interrupt(uint32_t adc); void adc_disable_watchdog_interrupt(uint32_t adc); diff --git a/include/libopencm3/stm32/f3/adc.h b/include/libopencm3/stm32/f3/adc.h index b2d406e7..9f4639bb 100644 --- a/include/libopencm3/stm32/f3/adc.h +++ b/include/libopencm3/stm32/f3/adc.h @@ -597,11 +597,9 @@ void adc_enable_all_awd_interrupt(uint32_t adc); void adc_disable_all_awd_interrupt(uint32_t adc); void adc_enable_eos_interrupt(uint32_t adc); void adc_disable_eos_interrupt(uint32_t adc); -void adc_start_conversion_regular(uint32_t adc); void adc_start_conversion_injected(uint32_t adc); void adc_disable_external_trigger_regular(uint32_t adc); void adc_disable_external_trigger_injected(uint32_t adc); -void adc_set_sample_time(uint32_t adc, uint8_t channel, uint8_t time); void adc_set_watchdog_high_threshold(uint32_t adc, uint8_t threshold); void adc_set_watchdog_low_threshold(uint32_t adc, uint8_t threshold); void adc_set_injected_sequence(uint32_t adc, uint8_t length, uint8_t channel[]); diff --git a/lib/stm32/common/adc_common_v2.c b/lib/stm32/common/adc_common_v2.c index e94e7001..ae4008ac 100644 --- a/lib/stm32/common/adc_common_v2.c +++ b/lib/stm32/common/adc_common_v2.c @@ -337,3 +337,20 @@ void adc_disable_vrefint(void) { ADC_CCR(ADC1) &= ~ADC_CCR_VREFEN; } + +/** @brief ADC Software Triggered Conversion on Regular Channels + * + * This starts conversion on a set of defined regular channels. It is cleared + * by hardware once conversion starts. + * + * @param[in] adc ADC block register address base @ref adc_reg_base + */ +void adc_start_conversion_regular(uint32_t adc) +{ + /* Start conversion on regular channels. */ + ADC_CR(adc) |= ADC_CR_ADSTART; + + /* Wait until the ADC starts the conversion. */ + while (ADC_CR(adc) & ADC_CR_ADSTART); +} + diff --git a/lib/stm32/f0/adc.c b/lib/stm32/f0/adc.c index eec8e125..00bd2322 100644 --- a/lib/stm32/f0/adc.c +++ b/lib/stm32/f0/adc.c @@ -147,36 +147,6 @@ void adc_set_operation_mode(uint32_t adc, enum adc_opmode opmode) /*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/ /** - * @defgroup adc_api_result ADC Result API - * @ingroup adc_file - * - * @brief ADC Result API - * - *@{*/ - -/*---------------------------------------------------------------------------*/ -/** @brief ADC Software Triggered Conversion on Regular Channels - * - * This starts conversion on a set of defined regular channels. It is cleared - * by hardware once conversion starts. - * - * @param[in] adc Unsigned int32. ADC base address (@ref adc_reg_base) - */ - -void adc_start_conversion_regular(uint32_t adc) -{ - /* Start conversion on regular channels. */ - ADC_CR(adc) |= ADC_CR_ADSTART; - - /* Wait until the ADC starts the conversion. */ - while (ADC_CR(adc) & ADC_CR_ADSTART); -} - -/**@}*/ - -/*---------------------------------------------------------------------------*/ -/*---------------------------------------------------------------------------*/ -/** * @defgroup adc_api_trigger ADC Trigger API * @ingroup adc_file * diff --git a/lib/stm32/f3/adc.c b/lib/stm32/f3/adc.c index c5327cfe..05ac2b32 100644 --- a/lib/stm32/f3/adc.c +++ b/lib/stm32/f3/adc.c @@ -431,25 +431,6 @@ void adc_disable_eos_interrupt(uint32_t adc) /*---------------------------------------------------------------------------*/ -/** @brief ADC Software Triggered Conversion on Regular Channels - * - * This starts conversion on a set of defined regular channels. It is cleared - * by hardware once conversion starts. - * - * @param[in] adc Unsigned int32. ADC block register address base @ref - * adc_reg_base - */ - -void adc_start_conversion_regular(uint32_t adc) -{ - /* Start conversion on regular channels. */ - ADC_CR(adc) |= ADC_CR_ADSTART; - - /* Wait until the ADC starts the conversion. */ - while (ADC_CR(adc) & ADC_CR_ADSTART); -} - -/*---------------------------------------------------------------------------*/ /** @brief ADC Software Triggered Conversion on Injected Channels * * This starts conversion on a set of defined injected channels. It is cleared |