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

[G4] ADC support

This commit is contained in:
jflyper 2019-07-28 01:36:21 +09:00 committed by mikeller
parent 131965577f
commit a554fc7a09
3 changed files with 551 additions and 11 deletions

View file

@ -33,6 +33,12 @@
#else
#define ADC_TAG_MAP_COUNT 28
#endif
#elif defined(STM32G4)
#ifdef USE_ADC_INTERNAL
#define ADC_TAG_MAP_COUNT 49
#else
#define ADC_TAG_MAP_COUNT 47
#endif
#elif defined(STM32F3)
#define ADC_TAG_MAP_COUNT 39
#else
@ -45,7 +51,7 @@ typedef struct adcTagMap_s {
uint8_t devices;
#endif
uint32_t channel;
#if defined(STM32H7)
#if defined(STM32H7) || defined(STM32G4)
uint8_t channelOrdinal;
#endif
} adcTagMap_t;
@ -56,24 +62,26 @@ typedef struct adcTagMap_s {
#define ADC_DEVICES_2 (1 << ADCDEV_2)
#define ADC_DEVICES_3 (1 << ADCDEV_3)
#define ADC_DEVICES_4 (1 << ADCDEV_4)
#define ADC_DEVICES_5 (1 << ADCDEV_5)
#define ADC_DEVICES_12 ((1 << ADCDEV_1)|(1 << ADCDEV_2))
#define ADC_DEVICES_34 ((1 << ADCDEV_3)|(1 << ADCDEV_4))
#define ADC_DEVICES_123 ((1 << ADCDEV_1)|(1 << ADCDEV_2)|(1 << ADCDEV_3))
#define ADC_DEVICES_345 ((1 << ADCDEV_3)|(1 << ADCDEV_4)|(1 << ADCDEV_5))
typedef struct adcDevice_s {
ADC_TypeDef* ADCx;
rccPeriphTag_t rccADC;
#if !defined(USE_DMA_SPEC)
dmaResource_t* dmaResource;
#if defined(STM32F4) || defined(STM32F7) || defined(STM32H7)
#if defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
uint32_t channel;
#endif
#endif // !defined(USE_DMA_SPEC)
#if defined(STM32F7) || defined(STM32H7)
#if defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
ADC_HandleTypeDef ADCHandle;
DMA_HandleTypeDef DmaHandle;
#endif
#if defined(STM32H7)
#if defined(STM32H7) || defined(STM32G4)
uint8_t irq;
uint32_t channelBits;
#endif