Hallo, bei dem AVR Mega gab es doch die nützliche Funktion das bei einem z.b. Compare der Timer zurückgesetzt wurde. Er anhielt und auf Null zurückgesetzt wurde. Geht das auch beim Xmega in den Appnotes habe ich nichts gefunden. Kann wer helfen? Danke
Ich möchte gern kontinuierlich die länge eines Externen Taktes im Hintergrund messen und das Ergebnis in per DMA in den RAM schreiben. Das Blöde ist das der Timer bei Compare nicht zurückgesetzt wird und fröhlich weiterzählt. Wie gesagt ich wollte das ohne Interrupts und nur mit Events und DMA machen.
Von genau welchem Timer sprichst Du? Normalerweise wird für den von Dir benötigten Zweck der CTC-Mode eingestellt und diesen gibt es auch beim XMega. Nur ist hier die korrekte Initialisierung manchmal etwas aufwändiger.
Timer F1
Initialisiert ist er so:
ldi temp,TC_CLKSEL_DIV1_gc
sts TCF1_CTRLA,temp
ldi temp, 0x10
sts TCF1_CTRLB,temp
ldi temp, 0x2A;
sts TCF1_CTRLD,temp
ldi temp,low(TCF1_CCA)
sts DMA_CH2_SRCADDR0,temp // Channel Source Address 0
ldi temp,high(TCF1_CCA);
sts DMA_CH2_SRCADDR1,temp // Channel Source Address 1
ldi temp,0x00
sts DMA_CH2_SRCADDR2,temp // Channel Source Address 2
ldi temp,low(VorzeitL_G)
sts DMA_CH2_DESTADDR0,temp // Channel Destination Address 0
ldi temp,high(VorzeitL_G)
sts DMA_CH2_DESTADDR1,temp // Channel Destination Address 1
ldi temp,0x00
sts DMA_CH2_DESTADDR2,temp // Channel Destination Address 1
ldi temp,0x55
sts DMA_CH2_ADDRCTRL,temp
ldi temp,0xA8
sts DMA_CH2_TRIGSRC,temp
ldi temp,0x02
sts DMA_CH2_TRFCNT,temp
ldi temp,0x00
sts DMA_CH2_TRFCNT+1,temp
Mfg
René
Wenn ich Frequency Capture einstelle dann reagiert im Simulator nichts der Timer läuft weiter und der Zählerstand wird nicht im CCA register gespeichert. Gibts da nicht irgendwo beispiele Ausser die in den Appnotes von Atmel.
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.