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