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