Hallo, ich habe ein Verständnisproblem beim Refresh des DACs beim Xmega. In 2.2.2 der Application Note AVR1301 wird ausgesagt, dass der Wert zyklisch refreshed werden muss. Soweit alles OK. Im Absatz darunter heißt es dann, dass dies automatisch durchgeführt wird, wenn im TIMCTRL das REFRESH-Bitfeld entsprechend gesetzt wird. Baut man nun den Beispiel-Source von Atmel so um, dass nur ein Wert ausgegeben wird, sieht man zwar auf dem Oszi den Peak, aber ein Auto-Refresh findet nicht statt und somit hat man auch keinen stabilen Ausgangswert. Nachfolgend die geänderte Funktion: void Example8a (void) { /* Given 2 MHz CPU speed, this is configured to 2µs separation time and * 16µs refresh time. */ DAC_DualChannel_Enable( &DACA, DAC_REFSEL_INT1V_gc /*DAC_REFSEL_AVCC_gc*/, false, DAC_CONINTVAL_4CLK_gc, DAC_REFRESH_32CLK_gc ); while ( DAC_Channel_DataEmpty( &DACA, CH0 ) == false ) { /* Blocking code waiting for empty register. */ } DAC_Channel_Write( &DACA, 0x0FFF, CH0 ); while (1) { } Irgendwie widersprechen sich diese beiden Aussagen in der APP-Note. Gibt es nun einen automatischen Refresh oder bin ich gezwungen zyklisch das DAC-Register immer neu zu beschreiben? Wenn es den automatischen Refresh gibt, was mache ich dann falsch? Gruß covalin
Mit dem DAC habe ich auch schon mal herum geärgert. Hier ist eine Diskussion mit Code Beispiel: Beitrag "XMEGA/ AVR-EXPLAIN code examples und Diskussion"
Mal eine andere Frage: Hast Du es schon mal geschafft, das Flash anzusteuern? Gruß, Klaus Beitrag "AVR XPLAIN 8MB Flash ansteuern ?"
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.