stehe auf dem Schlauch - ADC bei xmega

OP #2272759
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren