Hallo,
stehe total auf dem Schlauch und schäme mich sehr, weil ich den ADC auf
dem xmega128A1 nicht ans laufen kriege. So sieht der Code aus:
<code>
ADCB.CTRLA = 0x01; // no DMA, ADC enable
ADCB.CTRLB = 0x04; // unsigned mode und 8Bit
ADCB.REFCTRL = 0x00; // Interne 1.0V Referenz
// Prescaler=0 === DIV4
while (1)
{
ADCB.CTRLA = 0x03; // flush und enable
ADCB.CH1.MUXCTRL = 0x08 ; // MUXPOS=1 == Port B1
ADCB.CH1.CTRL = 0x81; // input mode single ended
// Kanal1
// Messung wird starten
// gain = 0 == MUL1
while ((ADCB.CH1.INTFLAGS & 0x01)==0x00) // Abschluss der
Konvertierung
;
valPB1 = ADCB.CH1.RES; // Ergebnis der Messung
#asm ("nop");
}
</code>
Ich will also eine AD-Wandlung machen, das Signal liegt an PB1 an (tut
es wirklich-geprüft), aber ich erhalte keinen sinnvollen Wert.
Später sollen daraus 2 Routinen werden, nämlich init... (Code vor dem
while) und do.. (Code im while).
Wäre toll, wenn einer von Euch eine Idee hätte, warum das nicht tut, und
wie man es tuen machen kann.
Ciao
vielleicht hilft dir der link weiter http://www.stromflo.de/dokuwiki/doku.php?id=xmega-c-tutorial#adc mfg mike
Ja, die Seite kannte ich schon, der Code dort hat meine Code "inspiriert". Ich denke auch, dass ich meinen Fehler nun gefunden habe, das flush hat irgendwie gestört, warum weiß ich noch nicht, aber das kriege ich sicher auch noch raus. Danke Mike Ciao
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.