ATXMEGA Event System soll Timer starten

Gast #2246363
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren