Fix AT91SAM7 ADC bug that resulted in sometimes corrupted output
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6811 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
abb3af9ecd
commit
0585f21b54
|
@ -117,6 +117,7 @@ ADCDriver ADCD1;
|
||||||
if ((isr & AT91C_ADC_EOC5)) dummy = ADCReg1->ADC_CDR5; \
|
if ((isr & AT91C_ADC_EOC5)) dummy = ADCReg1->ADC_CDR5; \
|
||||||
if ((isr & AT91C_ADC_EOC6)) dummy = ADCReg1->ADC_CDR6; \
|
if ((isr & AT91C_ADC_EOC6)) dummy = ADCReg1->ADC_CDR6; \
|
||||||
if ((isr & AT91C_ADC_EOC7)) dummy = ADCReg1->ADC_CDR7; \
|
if ((isr & AT91C_ADC_EOC7)) dummy = ADCReg1->ADC_CDR7; \
|
||||||
|
(void) dummy; \
|
||||||
}
|
}
|
||||||
#define adc_stop() { \
|
#define adc_stop() { \
|
||||||
adc_disable(); \
|
adc_disable(); \
|
||||||
|
@ -160,6 +161,9 @@ static void handleint(void) {
|
||||||
|
|
||||||
/* Half transfer processing.*/
|
/* Half transfer processing.*/
|
||||||
} else if ((isr & AT91C_ADC_ENDRX)) {
|
} else if ((isr & AT91C_ADC_ENDRX)) {
|
||||||
|
// Make sure we get a full complete next time.
|
||||||
|
ADCReg1->ADC_RNPR = 0;
|
||||||
|
ADCReg1->ADC_RNCR = 0;
|
||||||
_adc_isr_half_code(&ADCD1);
|
_adc_isr_half_code(&ADCD1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue