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.