From 4134a69a7adfabb05ebc04dc7a6015f7bf460bea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucher?= <cfoucher@laas.fr> Date: Wed, 30 Mar 2022 10:08:38 +0200 Subject: [PATCH] Add ADC discontinuous mode interface to HwConfig. --- .../zephyr/public_api/HardwareConfiguration.cpp | 5 +++++ .../zephyr/public_api/HardwareConfiguration.h | 1 + .../zephyr/src/adc_configuration.cpp | 16 ++++++++++++++++ .../zephyr/src/adc_configuration.h | 10 ++++++++++ 4 files changed, 32 insertions(+) diff --git a/zephyr/modules/owntech_hardware_configuration/zephyr/public_api/HardwareConfiguration.cpp b/zephyr/modules/owntech_hardware_configuration/zephyr/public_api/HardwareConfiguration.cpp index 50af50b..af95ccd 100644 --- a/zephyr/modules/owntech_hardware_configuration/zephyr/public_api/HardwareConfiguration.cpp +++ b/zephyr/modules/owntech_hardware_configuration/zephyr/public_api/HardwareConfiguration.cpp @@ -247,6 +247,11 @@ void HardwareConfiguration::configureAdcTriggerSource(uint8_t adc_number, adc_ev configure_adc_trigger_source(adc_number, trigger_source); } +void HardwareConfiguration::configureAdcDiscontinuousMode(uint8_t adc_number, uint32_t dicontinuous_count) +{ + configure_adc_discontinuous_mode(adc_number, dicontinuous_count); +} + void HardwareConfiguration::configureAdcDefaultAllMeasurements() { configure_adc_default_all_measurements(); diff --git a/zephyr/modules/owntech_hardware_configuration/zephyr/public_api/HardwareConfiguration.h b/zephyr/modules/owntech_hardware_configuration/zephyr/public_api/HardwareConfiguration.h index cc9b863..7f26503 100644 --- a/zephyr/modules/owntech_hardware_configuration/zephyr/public_api/HardwareConfiguration.h +++ b/zephyr/modules/owntech_hardware_configuration/zephyr/public_api/HardwareConfiguration.h @@ -106,6 +106,7 @@ public: static void configureAdc12DualMode(uint8_t dual_mode); static int8_t configureAdcChannels(uint8_t adc_number, const char* channel_list[], uint8_t channel_count); static void configureAdcTriggerSource(uint8_t adc_number, adc_ev_src_t trigger_source); + static void configureAdcDiscontinuousMode(uint8_t adc_number, uint32_t dicontinuous_count); static void configureAdcDefaultAllMeasurements(); }; diff --git a/zephyr/modules/owntech_hardware_configuration/zephyr/src/adc_configuration.cpp b/zephyr/modules/owntech_hardware_configuration/zephyr/src/adc_configuration.cpp index ee08ac3..af7042b 100644 --- a/zephyr/modules/owntech_hardware_configuration/zephyr/src/adc_configuration.cpp +++ b/zephyr/modules/owntech_hardware_configuration/zephyr/src/adc_configuration.cpp @@ -108,6 +108,22 @@ void configure_adc_trigger_source(uint8_t adc_number, adc_ev_src_t trigger_sourc adc_configure_trigger_source(adc_number, trigger_source); } +void configure_adc_discontinuous_mode(uint8_t adc_number, uint32_t dicontinuous_count) +{ + ///// + // Make sure module is initialized + + if (initialized == 0) + { + _initialize(); + } + + ///// + // Proceed + + adc_configure_discontinuous_mode(adc_number, dicontinuous_count); +} + void configure_adc_default_all_measurements() { uint8_t number_of_channels_adc1 = 3; diff --git a/zephyr/modules/owntech_hardware_configuration/zephyr/src/adc_configuration.h b/zephyr/modules/owntech_hardware_configuration/zephyr/src/adc_configuration.h index cc67dc4..c22c5a2 100644 --- a/zephyr/modules/owntech_hardware_configuration/zephyr/src/adc_configuration.h +++ b/zephyr/modules/owntech_hardware_configuration/zephyr/src/adc_configuration.h @@ -82,6 +82,16 @@ int8_t configure_adc_channels(uint8_t adc_number, const char* channel_list[], ui */ void configure_adc_trigger_source(uint8_t adc_number, adc_ev_src_t trigger_source); +/** + * Registers the discontinuous count for an ADC. + * It will be applied when ADC is started. + * + * @param adc_number Number of the ADC to configure. + * @param dicontinuous_count Number of channels to acquire on each + * trigger event. 0 to disable discontinuous mode (default). + */ +void configure_adc_discontinuous_mode(uint8_t adc_number, uint32_t dicontinuous_count); + /** * This function is used to configure all ADC channels in default configuration. * Channels will be attributed as follows: -- GitLab