Forum: Mikrocontroller und Digitale Elektronik ATXMEGA Event System soll Timer starten


von Basti (Gast)


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?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Basti schrieb:
> Geht soetwas mit dem Event-System?

Nein, da Du PortQ verwendest. Mit allen Pins von PortA bis PortF 
hingegen geht es. Siehe XMEGA A Manual Seite 72.

von Basti (Gast)


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?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Guck Dir doch mal bitte das Manual A an. Seiten 165ff zeigen die 
mögliche Timerkonfiguration auf und Seiten 71ff die dafür nötige 
EventChannel-Konfiguration.

von Basti (Gast)


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?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


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.

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.