aboutsummaryrefslogtreecommitdiffstats
path: root/testhal/STM32/multi/ADC/cfg/stm32h743_nucleo144/portab.c
diff options
context:
space:
mode:
Diffstat (limited to 'testhal/STM32/multi/ADC/cfg/stm32h743_nucleo144/portab.c')
-rw-r--r--testhal/STM32/multi/ADC/cfg/stm32h743_nucleo144/portab.c115
1 files changed, 115 insertions, 0 deletions
diff --git a/testhal/STM32/multi/ADC/cfg/stm32h743_nucleo144/portab.c b/testhal/STM32/multi/ADC/cfg/stm32h743_nucleo144/portab.c
new file mode 100644
index 000000000..226f4ba11
--- /dev/null
+++ b/testhal/STM32/multi/ADC/cfg/stm32h743_nucleo144/portab.c
@@ -0,0 +1,115 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file portab.c
+ * @brief Application portability module code.
+ *
+ * @addtogroup application_portability
+ * @{
+ */
+
+#include "hal.h"
+
+#include "portab.h"
+
+/*===========================================================================*/
+/* Module local definitions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module exported variables. */
+/*===========================================================================*/
+
+/*
+ * GPT configuration.
+ */
+const GPTConfig portab_gptcfg1 = {
+ .frequency = 1000000U,
+ .callback = NULL,
+ .cr2 = TIM_CR2_MMS_1, /* MMS = 010 = TRGO on Update Event. */
+ .dier = 0U
+};
+
+const ADCConfig portab_adccfg1 = {
+ .difsel = 0U
+};
+
+void adccallback(ADCDriver *adcp);
+
+/*
+ * ADC errors callback, should never happen.
+ */
+void adcerrorcallback(ADCDriver *adcp, adcerror_t err);
+
+/*
+ * ADC conversion group.
+ * Mode: Continuous, 16 samples of 2 channels, HW triggered by
+ * GPT4-TRGO.
+ * Channels: VRef, PA0.
+ */
+const ADCConversionGroup portab_adcgrpcfg1 = {
+ .circular = true,
+ .num_channels = ADC_GRP1_NUM_CHANNELS,
+ .end_cb = adccallback,
+ .error_cb = adcerrorcallback,
+ .cfgr = ADC_CFGR_EXTEN_RISING | ADC_CFGR_EXTSEL_SRC(12),
+ .cfgr2 = 0U,
+ .ccr = 0U,
+ .pcsel = ADC_SELMASK_IN0 | ADC_SELMASK_IN5,
+ .ltr1 = 0x00000000U,
+ .htr1 = 0x03FFFFFFU,
+ .ltr2 = 0x00000000U,
+ .htr2 = 0x03FFFFFFU,
+ .ltr3 = 0x00000000U,
+ .htr3 = 0x03FFFFFFU,
+ .smpr = {
+ ADC_SMPR1_SMP_AN0(ADC_SMPR_SMP_384P5) |
+ ADC_SMPR1_SMP_AN5(ADC_SMPR_SMP_384P5),
+ 0U
+ },
+ .sqr = {
+ ADC_SQR1_SQ1_N(ADC_CHANNEL_IN0) | ADC_SQR1_SQ2_N(ADC_CHANNEL_IN5),
+ 0U,
+ 0U,
+ 0U
+ }
+};
+
+/*===========================================================================*/
+/* Module local types. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module local variables. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module local functions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module exported functions. */
+/*===========================================================================*/
+
+void portab_setup(void) {
+
+ /* ADC inputs.*/
+ palSetPadMode(GPIOA, 0, PAL_MODE_INPUT_ANALOG);
+ palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_ANALOG);
+}
+
+/** @} */