Hi Leute,
ich habe momentan ein riesen Brett vor dem Kopf. Warum funktioniert
folgender Code bei mir nicht?
1 | // In einer Initialisierungsfunktion
|
2 |
|
3 | P6DIR = 0xEF;
|
4 | P6SEL = 0x10;
|
5 |
|
6 | ADC12CTL0 = ADC12ON + SHT0_1 + REFON + REF2_5V; // Konfiguriert ADC12
|
7 | ADC12MCTL0 = SREF_1 + INCH_4; // Vr+=Vref+ und Vr-=AVss,
|
8 | // Konvertierung von a4
|
9 | ADC12CTL1 = CONSEQ_0; // SC-SC Mode
|
10 |
|
11 | ADC12CTL0 |= ENC; // Konvertierung beginnen
|
12 |
|
13 |
|
14 | // ....
|
15 |
|
16 | // Interruptroutine von TimerA
|
17 |
|
18 | ADC12CTL0 |= ADC12SC + ENC; // Abtasten und Konvertieren
|
19 | while ((ADC12IFG & 0x0001)==0); // Hier bleibt das Programm hängen
|
20 |
|
21 | U0TXBUF = (ADC12MEM0>>8);
|
22 | while( ( IFG1 & 0x80 ) == 0 );
|
23 |
|
24 | U0TXBUF = ADC12MEM0;
|
25 | while( ( IFG1 & 0x80 ) == 0 );
|
26 |
|
27 | // Ende
|
Der Code bleibt bei der Abfrage des ADC - Interrupts hängen. Ich gehe
davon aus, dass ich den AD-Wandler falsch konfiguriert habe, aber was
habe ich falsch gemacht?
Vielen Dank im Vorraus für eure Hilfe!
Schönes Wochenende!
Armin