1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-16 21:05:26 +03:00

ADC fixes

This commit is contained in:
Bertrand Songis 2019-07-22 12:01:12 +02:00
parent 69f535e1af
commit fd86b8ae00
No known key found for this signature in database
GPG key ID: F189F79290FEC50F
2 changed files with 8 additions and 3 deletions

View file

@ -131,7 +131,7 @@ void adcInit()
ADC_MAIN->SMPR1 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24);
ADC_MAIN->SMPR2 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27);
ADC->CCR = ADC_CCR_VBATE | ADC_CCR_TSVREFE; // Enable temperature + vbat sensor
ADC->CCR = ADC_CCR_VBATE; // Enable vbat sensor
ADC_DMA_Stream->CR = DMA_SxCR_PL | ADC_DMA_SxCR_CHSEL | DMA_SxCR_MSIZE_0 | DMA_SxCR_PSIZE_0 | DMA_SxCR_MINC;
ADC_DMA_Stream->PAR = CONVERT_PTR_UINT(&ADC_MAIN->DR);
@ -248,7 +248,7 @@ void adcRead()
#if defined(PCBX10)
uint16_t getRTCBatteryVoltage()
{
return rtcBatteryVoltage * ADC_VREF_PREC2 / 2048;
return (rtcBatteryVoltage * ADC_VREF_PREC2) / 2048;
}
#else
uint16_t getRTCBatteryVoltage()

View file

@ -604,7 +604,6 @@
#define ADC_SET_DMA_FLAGS() ADC_DMA->HIFCR = (DMA_HIFCR_CTCIF4 | DMA_HIFCR_CHTIF4 | DMA_HIFCR_CTEIF4 | DMA_HIFCR_CDMEIF4 | DMA_HIFCR_CFEIF4)
#define ADC_TRANSFER_COMPLETE() (ADC_DMA->HISR & DMA_HISR_TCIF4)
#define ADC_SAMPTIME 2 // sample time = 28 cycles
#define ADC_VREF_PREC2 330
#if defined(PCBX9E)
#define HARDWARE_POT1
#define HARDWARE_POT2
@ -649,6 +648,7 @@
#define ADC_EXT_SET_DMA_FLAGS() ADC_DMA->LIFCR = (DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTEIF0 | DMA_LIFCR_CDMEIF0 | DMA_LIFCR_CFEIF0)
#define ADC_EXT_TRANSFER_COMPLETE() (ADC_DMA->LISR & DMA_LISR_TCIF0)
#define ADC_EXT_SAMPTIME 3 // sample time = 56 cycles
#define ADC_VREF_PREC2 330
#elif defined(PCBX9DP)
#define HARDWARE_POT1
#define HARDWARE_POT2
@ -679,6 +679,7 @@
#define ADC_CHANNEL_SLIDER1 ADC_Channel_14
#define ADC_CHANNEL_SLIDER2 ADC_Channel_15
#define ADC_CHANNEL_BATT ADC_Channel_10
#define ADC_VREF_PREC2 330
#elif defined(PCBXLITE)
#define HARDWARE_POT1
#define HARDWARE_POT2
@ -707,6 +708,7 @@
#define ADC_CHANNEL_POT1 ADC_Channel_11 // ADC1_IN11
#define ADC_CHANNEL_POT2 ADC_Channel_12 // ADC1_IN12
#define ADC_CHANNEL_BATT ADC_Channel_10 // ADC1_IN10
#define ADC_VREF_PREC2 330
#elif defined(PCBX7)
#define HARDWARE_POT1
#define HARDWARE_POT2
@ -730,6 +732,7 @@
#define ADC_CHANNEL_POT1 ADC_Channel_8
#define ADC_CHANNEL_POT2 ADC_Channel_6
#define ADC_CHANNEL_BATT ADC_Channel_10
#define ADC_VREF_PREC2 330
#elif defined(PCBX9LITE)
#define HARDWARE_POT1
#define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA2)
@ -749,6 +752,7 @@
#define ADC_GPIOC_PINS (GPIO_Pin_0 | GPIO_Pin_1)
#define ADC_CHANNEL_POT1 ADC_Channel_11 // ADC1_IN11
#define ADC_CHANNEL_BATT ADC_Channel_10 // ADC1_IN10
#define ADC_VREF_PREC2 330
#else
#define HARDWARE_POT1
#define HARDWARE_POT2
@ -777,6 +781,7 @@
#define ADC_CHANNEL_SLIDER1 ADC_Channel_14
#define ADC_CHANNEL_SLIDER2 ADC_Channel_15
#define ADC_CHANNEL_BATT ADC_Channel_10
#define ADC_VREF_PREC2 330
#endif
// PWR and LED driver