19 {
Gpio::A0, EFI_ADC_0, BIT(0) | BIT(1) | BIT(2) },
20 {
Gpio::A1, EFI_ADC_1, BIT(0) | BIT(1) | BIT(2) },
21 {
Gpio::A2, EFI_ADC_2, BIT(0) | BIT(1) | BIT(2) },
22 {
Gpio::A3, EFI_ADC_3, BIT(0) | BIT(1) | BIT(2) },
23 {
Gpio::A4, EFI_ADC_4, BIT(0) | BIT(1) },
25 {
Gpio::A5, EFI_ADC_5, BIT(0) | BIT(1) },
27 {
Gpio::A6, EFI_ADC_6, BIT(0) | BIT(1) },
29 {
Gpio::A7, EFI_ADC_7, BIT(0) | BIT(1) },
31 {
Gpio::B0, EFI_ADC_8, BIT(0) | BIT(1) },
33 {
Gpio::B1, EFI_ADC_9, BIT(0) | BIT(1) },
35 {
Gpio::C0, EFI_ADC_10, BIT(0) | BIT(1) | BIT(2) },
36 {
Gpio::C1, EFI_ADC_11, BIT(0) | BIT(1) | BIT(2) },
37 {
Gpio::C2, EFI_ADC_12, BIT(0) | BIT(1) | BIT(2) },
38 {
Gpio::C3, EFI_ADC_13, BIT(0) | BIT(1) | BIT(2) },
39 {
Gpio::C4, EFI_ADC_14, BIT(0) | BIT(1) },
41 {
Gpio::C5, EFI_ADC_15, BIT(0) | BIT(1) },
47 static_assert(EFI_ADC_NONE == ADC_CHANNEL_NONE);
52 for (
size_t idx = 0; idx < efi::size(
adcChannels); idx++) {
69 return ((hwChannel >= EFI_ADC_16) && (hwChannel <= EFI_ADC_31));
90 for (
size_t idx = 0; idx < efi::size(
adcChannels); idx++) {
96 criticalError(
"getAdcChannel %d",
pin);
105#if STM32_ADC_USE_ADC1
110#if STM32_ADC_USE_ADC2
115#if STM32_ADC_USE_ADC3
127 for (
size_t idx = 0; idx < efi::size(
adcChannels); idx++) {
144#if STM32_ADC_USE_ADC1
149#if STM32_ADC_USE_ADC2
154#if STM32_ADC_USE_ADC3
162 return EFI_ADC_ERROR;
166 for (
size_t idx = 0; idx < efi::size(
adcChannels); idx++) {
168 if (hwIndex == tmpIndex) {
176 return EFI_ADC_ERROR;
189 return getHwPin(
"get_pin", brainPin);
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin)
ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin)
GPIO_TypeDef * ioportid_t
Port Identifier.
UNUSED(samplingTimeSeconds)
brain_pin_e getAdcChannelBrainPin(const char *msg, adc_channel_e hwChannel)
int getAdcInternalChannel(ADC_TypeDef *adc, adc_channel_e hwChannel)
int getAdcChannelPin(adc_channel_e hwChannel)
bool adcIsMuxedInput(adc_channel_e hwChannel)
static const struct @48 adcChannels[]
adc_channel_e getHwChannelForAdcInput(ADC_TypeDef *adc, size_t hwIndex)
adc_channel_e getAdcChannel(brain_pin_e pin)
adc_channel_e adcMuxedGetParent(adc_channel_e hwChannel)
ioportid_t getAdcChannelPort(const char *msg, adc_channel_e hwChannel)