ATXMEGA Event System soll Timer starten

Gast #2246363
Hallo,
ich probiere gerade hinter das EventSystem des xmegas (atxmega128A1) zu 
steigen. Da ich folgendes Problem lösen will:
Ich bekomme auf Pin PQ0 ein Triggersignal, das startet bei einem Gerät 
eine Messung, nach 100ms ist der Messwert zum abholen bereit. Daher soll 
der Pin (PQ0) am Prozessor vorbei einen Timer starten, der dann 100ms 
läuft. Anschließend soll ein interrupt ausgelöst werden und ich hole mir 
die Messwerte ab.
Geht soetwas mit dem Event-System?
Gast #2246501
Ok, wenn ich jetzt z.B. PORTA nutze, wie gehe ich dann vor. Welches 
Event soll ich denn Auslösen? Schon klar, dass das den Timer startet ;-) 
aber welches soll das ein.
Nehmen wir z.B. Timer 0 den konfiguriere ich folgendermaßen, wenn ich 
das ganze ohne evensystem machen würde:
TCC0.CTRLA = TC_CLKSEL_DIV256_gc;
TCC0.PER =  12499;//Entspricht 100ms
TCC0.INTCTRLA = TC_OVFINTLVL_MI_gc;

Ich muss irgendwo den Timer vorkonfigurieren und mit dem Event das ganze 
scharf stellen.
Wie mach ich das am besten?
Gast #2246702
Ich kenne das Manual.
Ich habe bisher noch nie etwas mit dem EvenSystem gemacht, und habe 
überhaupt mit dem Xmega noch relativ eingeschränkte Erfahrung.
In welchen Betriebsmodi soll ich denn den Timer bringen, damit er auf 
ein event hin startet?
Im CTRLA Register kann ich zwar ein Event als Takt verwenden, das ist 
aber nicht das was ich machen will.
Welches event soll ich denn auslösen wenn ich eine Zustandsänderung an 
dem PIn habe?
(Firma: TravelRec.) Persönliche Seite #2246728
Basti schrieb:
> Ich kenne das Manual.

Da steht auch alles drin, um Deine Frage zu beantworten.

Basti schrieb:
> Ich habe bisher noch nie etwas mit dem EvenSystem gemacht, und habe
> überhaupt mit dem Xmega noch relativ eingeschränkte Erfahrung.

Das ist ja keine Schande. Deswegen liest man sich in die Funktionen ein.

Basti schrieb:
> In welchen Betriebsmodi soll ich denn den Timer bringen, damit er auf
> ein event hin startet?

In gar keinen. Du kannst den Timer takten, die Zählfunktion umkehren, 
ihn resetten, das Input capture register laden und noch einige andere 
Dinge tun. Durch geschickte Kombination der möglichen Funktionen kommst 
Du Deinem Ziel vielleicht näher. Du kannst auch den DMA-Controller 
mittels Events zu einem Eintrag in die Timerregister veranlassen und den 
Timer beispielsweise damit starten. Da ich Dein Programm und Deine 
Anforderungen nicht kenne, kann ich keine weiteren Tipps geben. Da musst 
Du schon selber ´ran.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.