From a4879cc2e3f0e67c280c9757e053fc6b54c0b957 Mon Sep 17 00:00:00 2001 From: Dominic Clifton Date: Wed, 15 Oct 2014 21:14:49 +0100 Subject: [PATCH] Use Naze hardware revision when initialising ADC. --- src/main/drivers/adc.h | 1 + src/main/drivers/adc_stm32f10x.c | 23 +++++++++++------------ src/main/main.c | 8 ++++++++ 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/main/drivers/adc.h b/src/main/drivers/adc.h index f0fadeec1c..4583d966d1 100755 --- a/src/main/drivers/adc.h +++ b/src/main/drivers/adc.h @@ -37,6 +37,7 @@ typedef struct adc_config_t { typedef struct drv_adc_config_t { bool enableRSSI; bool enableCurrentMeter; + bool enableExternal1; } drv_adc_config_t; void adcInit(drv_adc_config_t *init); diff --git a/src/main/drivers/adc_stm32f10x.c b/src/main/drivers/adc_stm32f10x.c index 2bb617d4e0..9af9fe167c 100644 --- a/src/main/drivers/adc_stm32f10x.c +++ b/src/main/drivers/adc_stm32f10x.c @@ -88,27 +88,26 @@ void adcInit(drv_adc_config_t *init) adcConfig[ADC_RSSI].sampleTime = ADC_SampleTime_239Cycles5; } + if (init->enableExternal1) { #ifdef OLIMEXINO - GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_5; - - adcConfig[ADC_EXTERNAL1].adcChannel = ADC_Channel_5; - adcConfig[ADC_EXTERNAL1].dmaIndex = configuredAdcChannels++; - adcConfig[ADC_EXTERNAL1].enabled = true; - adcConfig[ADC_EXTERNAL1].sampleTime = ADC_SampleTime_239Cycles5; -#endif - -#ifdef NAZE - // optional ADC5 input on rev.5 hardware - if (hse_value == 12000000) { GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_5; adcConfig[ADC_EXTERNAL1].adcChannel = ADC_Channel_5; adcConfig[ADC_EXTERNAL1].dmaIndex = configuredAdcChannels++; adcConfig[ADC_EXTERNAL1].enabled = true; adcConfig[ADC_EXTERNAL1].sampleTime = ADC_SampleTime_239Cycles5; - } #endif +#ifdef NAZE + GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_5; + + adcConfig[ADC_EXTERNAL1].adcChannel = ADC_Channel_5; + adcConfig[ADC_EXTERNAL1].dmaIndex = configuredAdcChannels++; + adcConfig[ADC_EXTERNAL1].enabled = true; + adcConfig[ADC_EXTERNAL1].sampleTime = ADC_SampleTime_239Cycles5; +#endif + } + GPIO_Init(GPIOA, &GPIO_InitStructure); if (init->enableCurrentMeter) { diff --git a/src/main/main.c b/src/main/main.c index 9de8b10909..f6fab6f366 100755 --- a/src/main/main.c +++ b/src/main/main.c @@ -191,6 +191,14 @@ void init(void) adc_params.enableRSSI = feature(FEATURE_RSSI_ADC); adc_params.enableCurrentMeter = feature(FEATURE_CURRENT_METER); + adc_params.enableExternal1 = false; +#ifdef OLIMEXINO + adc_params.enableExternal1 = true; +#endif +#ifdef NAZE + // optional ADC5 input on rev.5 hardware + adc_params.enableExternal1 = (hardwareRevision >= NAZE32_REV5); +#endif adcInit(&adc_params);