1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 06:15:16 +03:00

Remove need to specify ADC Channel (only 1 per pin).

This commit is contained in:
blckmn 2016-06-19 21:45:03 +10:00 committed by blckmn
parent 7e6fb8db65
commit 71353066b8
37 changed files with 160 additions and 294 deletions

View file

@ -17,27 +17,52 @@
#pragma once
#include "io.h"
#include "rcc.h"
#if defined(STM32F4)
#define ADC_PIN_MAP_COUNT 16
#elif defined(STM32F3)
#define ADC_PIN_MAP_COUNT 39
#else
#define ADC_PIN_MAP_COUNT 10
#endif
typedef enum ADCDevice {
ADCINVALID = -1,
ADCDEV_1 = 0,
#if defined(STM32F3)
ADCDEV_2,
ADCDEV_MAX = ADCDEV_2,
#elif defined(STM32F4)
ADCDEV_2,
ADCDEV_3,
ADCDEV_MAX = ADCDEV_3,
ADCDEV_MAX = ADCDEV_3,
#else
ADCDEV_MAX = ADCDEV_1,
#endif
} ADCDevice;
typedef struct adcPinMap_s {
ioTag_t pin;
uint8_t channel;
} adcPinMap_t;
typedef struct adcDevice_s {
ADC_TypeDef* ADCx;
rccPeriphTag_t rccADC;
rccPeriphTag_t rccDMA;
#if defined(STM32F4)
DMA_Stream_TypeDef* DMAy_Streamx;
uint32_t channel;
#else
DMA_Channel_TypeDef* DMAy_Channelx;
#endif
} adcDevice_t;
extern const adcDevice_t adcHardware[];
extern const adcPinMap_t adcPinMap[ADC_PIN_MAP_COUNT];
extern adc_config_t adcConfig[ADC_CHANNEL_COUNT];
extern volatile uint16_t adcValues[ADC_CHANNEL_COUNT];
uint8_t adcChannelByPin(ioTag_t pin);