Revert "Revert "Use average (count = 8) for all ADC measure (include battery)""

This reverts commit b0bbe71747.
pull/4/head
erikkaashoek 6 years ago
parent b0bbe71747
commit e373239447

16
adc.c

@ -68,13 +68,15 @@ uint16_t adc_single_read(uint32_t chsel)
VNA_ADC->CFGR1 = ADC_CFGR1_RES_12BIT; VNA_ADC->CFGR1 = ADC_CFGR1_RES_12BIT;
VNA_ADC->CHSELR = chsel; VNA_ADC->CHSELR = chsel;
/* ADC conversion start.*/ uint32_t result = 0;
VNA_ADC->CR |= ADC_CR_ADSTART; uint32_t count = 1<<3; // Average count
do{
while (VNA_ADC->CR & ADC_CR_ADSTART) VNA_ADC->CR |= ADC_CR_ADSTART; // ADC conversion start.
; while (VNA_ADC->CR & ADC_CR_ADSTART)
;
return VNA_ADC->DR; result+=VNA_ADC->DR;
}while(--count);
return result>>3;
} }
int16_t adc_vbat_read(void) int16_t adc_vbat_read(void)

13
ui.c

@ -196,11 +196,9 @@ static int btn_wait_release(void)
} }
// ADC read count for measure X and Y (better be 2^n) // ADC read count for measure X and Y (better be 2^n)
#define TOUCH_MEASURE_COUNT 8
static int static int
touch_measure_y(void) touch_measure_y(void)
{ {
int v = 0, i = TOUCH_MEASURE_COUNT;
// open Y line // open Y line
palSetPadMode(GPIOB, GPIOB_YN, PAL_MODE_INPUT_PULLDOWN); palSetPadMode(GPIOB, GPIOB_YN, PAL_MODE_INPUT_PULLDOWN);
palSetPadMode(GPIOA, GPIOA_YP, PAL_MODE_INPUT_PULLDOWN); palSetPadMode(GPIOA, GPIOA_YP, PAL_MODE_INPUT_PULLDOWN);
@ -211,16 +209,12 @@ touch_measure_y(void)
palClearPad(GPIOB, GPIOB_XN); palClearPad(GPIOB, GPIOB_XN);
palSetPad(GPIOA, GPIOA_XP); palSetPad(GPIOA, GPIOA_XP);
do{ return adc_single_read(ADC_TOUCH_Y);
v+= adc_single_read(ADC_TOUCH_Y);
}while(--i);
return v/TOUCH_MEASURE_COUNT;
} }
static int static int
touch_measure_x(void) touch_measure_x(void)
{ {
int v = 0, i = TOUCH_MEASURE_COUNT;
// Set X line as input // Set X line as input
palSetPadMode(GPIOB, GPIOB_XN, PAL_MODE_INPUT_PULLDOWN); palSetPadMode(GPIOB, GPIOB_XN, PAL_MODE_INPUT_PULLDOWN);
palSetPadMode(GPIOA, GPIOA_XP, PAL_MODE_INPUT_PULLDOWN); palSetPadMode(GPIOA, GPIOA_XP, PAL_MODE_INPUT_PULLDOWN);
@ -231,10 +225,7 @@ touch_measure_x(void)
palSetPad(GPIOB, GPIOB_YN); palSetPad(GPIOB, GPIOB_YN);
palClearPad(GPIOA, GPIOA_YP); palClearPad(GPIOA, GPIOA_YP);
do{ return adc_single_read(ADC_TOUCH_X);
v+= adc_single_read(ADC_TOUCH_X);
}while(--i);
return v/TOUCH_MEASURE_COUNT;
} }
void void

Loading…
Cancel
Save

Powered by TurnKey Linux.