Hallo, ich möchte einen Timer vom XMega128A1 mit einem externen Takt aus einer DS3234 versorgen. Da das nachdem, was ich dem Datenblatt so entnehmen kann, nur mit dem RTC geht, wollt ich diesen auch verwenden. Nun steht in der Übersichtdarstellung des RTC auf S.188 die Auswahlmöglichkeit "External Clock" an TOSC1. An andere Stelle steht aber, dass TOSC nur für Quarze geht. Nun bin ich etwas verunsichert. Kann ich an TOSC1 einfach ein Rechtecksignal anlegen? Wie bekomme ich alternativ den Takt an den Timer? Grüße, Alex
--> Wieso willst du überhaupt einen externen Quarz verwenden? Der Platzbedarf und Aufwand sprechen da doch total dagegen. Außerdem funktioniert ein Quarz doch ganz prima. --> Aber gut, wenn du das trotzdem probieren willst, stellst du einfach auf einen externen Oszillator um. Am OSC1 Pin musst du dann das Signal anlegen. Besser ist natürlich Sinus als Rechteck. Dann im Programm noch den Takt übernehmen und fertig. Dauerlösung ist das aber auf keinen Fall! Diese Methode eignet sich jedoch gut zum Reparieren von verfusten AVRs. mfg mega9
Wirf mal einen Blick auf das Event System. Damit sollte es theoretisch (ich selber habe damit noch nicht gearbeitet) möglich sein einen Timer über ein externes Signal zählen zu lassen.
Hallo, danke für Eure Antworten. Ich möchte ja nicht den Controller mit dem Takt betreiben, sondern lediglich den Timer. Der interne Oszillator ist für meine Zwecke viel zu ungenau und egal was ich über die DFLL lese, alle tuen sich schwer damit, und wenn ich das Errata lese, scheint da ja auch noch einiges im Argen zu liegen. Beim Mega war das kein Thema, da gab's für den Timer2 einen separaten Takteingang. Den vermisse ich gerade sehr. Grüße, Alex
Hallo Alexander Ich kann Marcel nur recht geben. Das XMega Event System kann einen Pin als Taktgeber für einen beliebigen Timer weiterreichen. Man muss dazu die Taktquelle des Timers auf einen Event-Kanal stellen, etwa so: TCxy.CTRLA = TC_CLKSEL_EVCHz_gc; Und anschlißend den Pin Events generieren lass und diese auf den selben Event Kanal legen: PORTx.PINyCTRL = PORT_ISC_FALLING_gc; EVSYS.CHzMUX = EVSYS_CHMUX_PORTx_PINy_gc; da1l6
Danke, das probier ich dann gleich aus. Grüße...
Hey Marcel & da1l6, hab's eben geschafft, es umzusetzen. Vielen Dank Euch beiden. Grüße, Alex
:
Bearbeitet durch User
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.