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

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

16
adc.c

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

13
ui.c

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

Loading…
Cancel
Save

Powered by TurnKey Linux.