Forum: Mikrocontroller und Digitale Elektronik Xmega DAC code geht nicht


von F. (Gast)


Lesenswert?

Mein DAC meines ATXMEGA 128 bewegt sich leider nicht.

Habe dazu folgender Code erstellt.

//DA Wandler Init
DACA.CTRLB = DAC_CHSEL_SINGLE_gc; //Singel Channel Mode

DACA.CTRLB |= DAC_CH0TRIG_bm;  //Tigger -neuer Wert

DACA.CTRLC = DAC_REFSEL_AVCC_gc;  //Ext. AREF liegt auf 3,3V

DACA.CTRLA = DAC_CH0EN_bm;   //CH0 aktivieren

DACA_CTRLA |= DAC_ENABLE_bm;

DACA.CH0DATA = 0x0FFF;  //Veränderbarer Wert für Ausgabe


PA2 gibt immer 1,5V aus!! Änderung in DACA.CH0DATA hat keinen Einfluss

von DrMaex (Gast)


Lesenswert?

auf die schnelle fällt mir nur auf, dass in
1
DACA_CTRLA |= DAC_ENABLE_bm;
ein unterstrich benutzt wird statt Punkt.
Probier mal vielleicht als erstes:

DACA.CTRLA |= DAC_ENABLE_bm;   statt  DACA_CTRLA |= DAC_ENABLE_bm;

und wenn ich mich nicht täusche ist event triggered conversion 
eingestellt
1
 DACA.CTRLB |= DAC_CH0TRIG_bm;  //Tigger -neuer Wert

Zitat aus dem Datenblatt:

Bit 0 - CH0TRIG: DAC Auto trigged mode Channel 0
If this bit is set, !!!the incoming event on the event channel selected 
in the EVCTRL Register will
start the conversion!!! when a new value is written to high byte of the 
data register CH0DATA.


deswegen, "&=~"  statt "|= "

Gruß

Max

von Alex P. (drdatensalat)


Lesenswert?

Hast du schon folgende Appnote angeschaut?

www.atmel.com/dyn/resources/prod_documents/doc8033.pdf

vieleicht hilft's dir.

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.