Forum: Mikrocontroller und Digitale Elektronik stehe auf dem Schlauch - ADC bei xmega


von Willi W. (williwacker)


Lesenswert?

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

von Willi W. (williwacker)


Lesenswert?

keine Idee? Ihr auch nicht?

von Mike (Gast)


Lesenswert?

vielleicht hilft dir der link weiter

http://www.stromflo.de/dokuwiki/doku.php?id=xmega-c-tutorial#adc


mfg
mike

von Willi W. (williwacker)


Lesenswert?

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
Noch kein Account? Hier anmelden.