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:
parent
7e6fb8db65
commit
71353066b8
37 changed files with 160 additions and 294 deletions
|
@ -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);
|
Loading…
Add table
Add a link
Reference in a new issue