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

@ -41,6 +41,48 @@ const adcDevice_t adcHardware[] = {
{ .ADCx = ADC2, .rccADC = RCC_AHB(ADC12), .rccDMA = RCC_AHB(DMA2), .DMAy_Channelx = DMA2_Channel1 }
};
const adcPinMap_t adcPinMap[] = {
{ .pin = DEFIO_TAG_E__PA0, .channel = ADC_Channel_1 }, // ADC1
{ .pin = DEFIO_TAG_E__PA1, .channel = ADC_Channel_2 }, // ADC1
{ .pin = DEFIO_TAG_E__PA2, .channel = ADC_Channel_3 }, // ADC1
{ .pin = DEFIO_TAG_E__PA3, .channel = ADC_Channel_4 }, // ADC1
{ .pin = DEFIO_TAG_E__PA4, .channel = ADC_Channel_1 }, // ADC2
{ .pin = DEFIO_TAG_E__PA5, .channel = ADC_Channel_2 }, // ADC2
{ .pin = DEFIO_TAG_E__PA6, .channel = ADC_Channel_3 }, // ADC2
{ .pin = DEFIO_TAG_E__PA7, .channel = ADC_Channel_4 }, // ADC2
{ .pin = DEFIO_TAG_E__PB0, .channel = ADC_Channel_12 }, // ADC3
{ .pin = DEFIO_TAG_E__PB1, .channel = ADC_Channel_1 }, // ADC3
{ .pin = DEFIO_TAG_E__PB2, .channel = ADC_Channel_12 }, // ADC2
{ .pin = DEFIO_TAG_E__PB12, .channel = ADC_Channel_3 }, // ADC4
{ .pin = DEFIO_TAG_E__PB13, .channel = ADC_Channel_5 }, // ADC3
{ .pin = DEFIO_TAG_E__PB14, .channel = ADC_Channel_4 }, // ADC4
{ .pin = DEFIO_TAG_E__PB15, .channel = ADC_Channel_5 }, // ADC4
{ .pin = DEFIO_TAG_E__PC0, .channel = ADC_Channel_6 }, // ADC12
{ .pin = DEFIO_TAG_E__PC1, .channel = ADC_Channel_7 }, // ADC12
{ .pin = DEFIO_TAG_E__PC2, .channel = ADC_Channel_8 }, // ADC12
{ .pin = DEFIO_TAG_E__PC3, .channel = ADC_Channel_9 }, // ADC12
{ .pin = DEFIO_TAG_E__PC4, .channel = ADC_Channel_5 }, // ADC2
{ .pin = DEFIO_TAG_E__PC5, .channel = ADC_Channel_11 }, // ADC2
{ .pin = DEFIO_TAG_E__PD8, .channel = ADC_Channel_12 }, // ADC4
{ .pin = DEFIO_TAG_E__PD9, .channel = ADC_Channel_13 }, // ADC4
{ .pin = DEFIO_TAG_E__PD10, .channel = ADC_Channel_7 }, // ADC34
{ .pin = DEFIO_TAG_E__PD11, .channel = ADC_Channel_8 }, // ADC34
{ .pin = DEFIO_TAG_E__PD12, .channel = ADC_Channel_9 }, // ADC34
{ .pin = DEFIO_TAG_E__PD13, .channel = ADC_Channel_10 }, // ADC34
{ .pin = DEFIO_TAG_E__PD14, .channel = ADC_Channel_11 }, // ADC34
{ .pin = DEFIO_TAG_E__PE7, .channel = ADC_Channel_13 }, // ADC3
{ .pin = DEFIO_TAG_E__PE8, .channel = ADC_Channel_6 }, // ADC34
{ .pin = DEFIO_TAG_E__PE9, .channel = ADC_Channel_2 }, // ADC3
{ .pin = DEFIO_TAG_E__PE10, .channel = ADC_Channel_14 }, // ADC3
{ .pin = DEFIO_TAG_E__PE11, .channel = ADC_Channel_15 }, // ADC3
{ .pin = DEFIO_TAG_E__PE12, .channel = ADC_Channel_16 }, // ADC3
{ .pin = DEFIO_TAG_E__PE13, .channel = ADC_Channel_3 }, // ADC3
{ .pin = DEFIO_TAG_E__PE14, .channel = ADC_Channel_1 }, // ADC4
{ .pin = DEFIO_TAG_E__PE15, .channel = ADC_Channel_2 }, // ADC4
{ .pin = DEFIO_TAG_E__PF2, .channel = ADC_Channel_10 }, // ADC12
{ .pin = DEFIO_TAG_E__PF4, .channel = ADC_Channel_5 }, // ADC1
};
ADCDevice adcDeviceByInstance(ADC_TypeDef *instance)
{
if (instance == ADC1)
@ -68,7 +110,7 @@ void adcInit(drv_adc_config_t *init)
IOInit(IOGetByTag(IO_TAG(VBAT_ADC_PIN)), OWNER_SYSTEM, RESOURCE_ADC);
IOConfigGPIO(IOGetByTag(IO_TAG(VBAT_ADC_PIN)), IO_CONFIG(GPIO_Mode_AN, 0, GPIO_OType_OD, GPIO_PuPd_NOPULL));
adcConfig[ADC_BATTERY].adcChannel = VBAT_ADC_CHANNEL;
adcConfig[ADC_BATTERY].adcChannel = adcChannelByPin(IO_TAG(VBAT_ADC_PIN));
adcConfig[ADC_BATTERY].dmaIndex = adcChannelCount;
adcConfig[ADC_BATTERY].sampleTime = ADC_SampleTime_601Cycles5;
adcConfig[ADC_BATTERY].enabled = true;
@ -81,7 +123,7 @@ void adcInit(drv_adc_config_t *init)
IOInit(IOGetByTag(IO_TAG(RSSI_ADC_PIN)), OWNER_SYSTEM, RESOURCE_ADC);
IOConfigGPIO(IOGetByTag(IO_TAG(RSSI_ADC_PIN)), IO_CONFIG(GPIO_Mode_AN, 0, GPIO_OType_OD, GPIO_PuPd_NOPULL));
adcConfig[ADC_RSSI].adcChannel = RSSI_ADC_CHANNEL;
adcConfig[ADC_RSSI].adcChannel = adcChannelByPin(IO_TAG(RSSI_ADC_PIN));
adcConfig[ADC_RSSI].dmaIndex = adcChannelCount;
adcConfig[ADC_RSSI].sampleTime = ADC_SampleTime_601Cycles5;
adcConfig[ADC_RSSI].enabled = true;
@ -94,7 +136,7 @@ void adcInit(drv_adc_config_t *init)
IOInit(IOGetByTag(IO_TAG(CURRENT_METER_ADC_PIN)), OWNER_SYSTEM, RESOURCE_ADC);
IOConfigGPIO(IOGetByTag(IO_TAG(CURRENT_METER_ADC_PIN)), IO_CONFIG(GPIO_Mode_AN, 0, GPIO_OType_OD, GPIO_PuPd_NOPULL));
adcConfig[ADC_CURRENT].adcChannel = CURRENT_METER_ADC_CHANNEL;
adcConfig[ADC_CURRENT].adcChannel = adcChannelByPin(IO_TAG(CURRENT_METER_ADC_PIN));
adcConfig[ADC_CURRENT].dmaIndex = adcChannelCount;
adcConfig[ADC_CURRENT].sampleTime = ADC_SampleTime_601Cycles5;
adcConfig[ADC_CURRENT].enabled = true;
@ -107,7 +149,7 @@ void adcInit(drv_adc_config_t *init)
IOInit(IOGetByTag(IO_TAG(EXTERNAL1_ADC_PIN)), OWNER_SYSTEM, RESOURCE_ADC);
IOConfigGPIO(IOGetByTag(IO_TAG(EXTERNAL1_ADC_PIN)), IO_CONFIG(GPIO_Mode_AN, 0, GPIO_OType_OD, GPIO_PuPd_NOPULL));
adcConfig[ADC_EXTERNAL1].adcChannel = EXTERNAL1_ADC_CHANNEL;
adcConfig[ADC_EXTERNAL1].adcChannel = adcChannelByPin(IO_TAG(EXTERNAL1_ADC_PIN));
adcConfig[ADC_EXTERNAL1].dmaIndex = adcChannelCount;
adcConfig[ADC_EXTERNAL1].sampleTime = ADC_SampleTime_601Cycles5;
adcConfig[ADC_EXTERNAL1].enabled = true;