Hallo,
ich beschäftige mich gerade mit dem ADC des XMega128A1. Leider weiß ich
gerade nicht mehr weiter, ich hoffe, dass sich jemand von euch damit
auskennt. Aus dem Datenblatt werde ich auch nicht ganz schlau!
Ich versuche eine Einzelmessung des ADC anzutriggern. Das funktioniert
prinzipiell auch, auf den ADC Kanälen 0...3. Wenn ich aber auf den
Kanälen 4...7 Messen will weiß ich nicht welches Bit in welchem Register
ich setzen soll. Ebenfalls weiß ich nicht, in welchem register dann der
AD-Wert abzuholen ist.
Für die Kanäle 0...3 gibt es die Register ADCB.CH1...3.CTRL und
ADCB.CH1...3.RES. Im CTRL-Register trigger ich die Messung an und hole
den Wert dann im RES-Register ab.
Diese Register gibt es aber für die Kanäle 4...7 nicht, was soll ich
tun.
So mache ich es z.B. bei Kanal 1:
1 | ADCB.CH1.CTRL = 0x81; // ADCB Kanal 1 starten / sigle ended positiv input
|
2 | while(ADCB.INTFLAGS == 0) // Warten bis AD-Wandlung beendet
|
3 | {}
|
4 | value = ADCB.CH1.RES; // AD-Wert abholen
|
5 | ADCB.INTFLAGS = 0x01; // ADC Neustart frei schalten
|
Danke für eure Hilfe!
Gruß