Forum: Mikrocontroller und Digitale Elektronik Xmega 128A1 Timer


von R--- S. (rene66)


Lesenswert?

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

von R--- S. (rene66)


Lesenswert?

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 Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von R--- S. (rene66)


Lesenswert?

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é

von R--- S. (rene66)


Lesenswert?

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