Meistens ist der Spike nur 1 Sample lang, im Ausnahmefall auch länger.
Die Höhe ist unterschiedlich und nicht periodisch.
Der DAC-Ausgang ist über ein RC-Filter (10k+100nF) direkt mit AD0.0
verbunden. Das Problem tritt aber auch beim Messen einer Gleichspannung
auf, wie gesagt: im Eingangssignal sehe ich die Störung mit meinem
(guten) Oszi auch nicht.
1 | //init ADC
|
2 | LPC_PINCON->PINSEL1 |= ( 1UL<<14 );
|
3 | LPC_PINCON->PINSEL1 &= ~( 1UL<<15 );
|
4 | LPC_PINCON->PINMODE1 &= ~( 1 << 14 );
|
5 | LPC_PINCON->PINMODE1 |= ( 1 << 15 );
|
6 |
|
7 |
|
8 | LPC_ADC->ADCR = ( 1UL << 0 ) | ( 3UL << 8 ) | ( 1UL << 21 );
|
9 | LPC_ADC->ADINTEN = ( 1UL << 8 );
|
10 | NVIC_EnableIRQ( ADC_IRQn );
|
11 |
|
12 |
|
13 | void ADC_IRQHandler( void )
|
14 | {
|
15 | LPC_ADC->ADCR &= 0xF8FFFF00; //ADC stoppen + MUX löschen
|
16 | ADCVal = ( LPC_ADC->ADGDR >> 4 ) & 0xFFF; //Auslesen
|
17 | [...]
|
18 | LPC_ADC->ADCR |= ( 1UL << 24 ) | ( 1UL << 0 ); //Neustart
|
19 | }
|