PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Externen Takt halbieren



zumgwadrad
09.07.2007, 12:13
Hi,
hab da mal ne Frage! Habe hier ne fertige Schaltung mit einem externen Quarz mit 16MHz.
Ich möchte aber mit einer geríngeren Taktfrequenz arbeiten und nicht den internen Taktgeber verwenden da dieser zu ungenau ist. Kann ich meinem Controller sagen mach bitte nur bei jedem zweiten Impuls am Takteingang was? Somit würde sich ja die Taktfrequenz halbieren lassen!
Ach ja, sollte es relevant sein ich Prog in C auf einem Atmega128!
Vielen Dank schon mal!!

askazo
09.07.2007, 12:18
Der ATMega hat ein XTAL Devide Control Register (XDIV), mit dem Du den Eingangstakt beliebig zwischen 2 und 129 runterteilen kannst.
Siehe Datenblatt S.43

Gruß,
askazo

zumgwadrad
09.07.2007, 12:41
Hi,
danke schonmal!
Also ich muss das XDIVEN auf 0 setzen, dann meine entsprechenden Bits auf 0 setzen und dann XDIVEN wieder auf 1!
Also angenommen ich will halbieren dann setz ich DIV0-6 auf 0 oder 1!
Bin irgendwie verwirrt!
Edit: Ok habs etz! Aber jetzt gehen meine Taster nicht mehr und meine Lichtschranke! Hat das möglicherweise Auswirkungen auf meine Aref?

Hubert.G
09.07.2007, 12:59
Die Wertigkeit der Bits ist normal binär, also 1, 2, 4, 8, 16, usw, in deinem Fall dann nur XDIV1 auf 1 setzen.
Hubert

zumgwadrad
09.07.2007, 13:06
Hi,
Im Datenblatt seht als Formel für Fclk=Source Clock/129-d.
und d sind die gesetzten Bits. Oder nicht! Steh unheimlich aufm Schlauch!

askazo
09.07.2007, 14:36
Du willst durch 2 teilen. Also muss d in Deinem Fall 127 ergeben.
127 binär ist 1111111. XDIVEN musst Du auch einschalten, damit der Devider aktiv wird. Wenn Du also XDIV = 0xFF setzt, sollte es gehen.

Das XDIV Register hat übrigens Auswirkungen auf Timer/Counter0.
Siehe Fußnote auf S.43 im Datenblatt.

askazo

zumgwadrad
09.07.2007, 14:43
HI,
ja das hab ich gelesen, bin da auch grad drüber! Also muss ich den TIMER/COUNTER takt auf ein Viertel einstellen und dann gehts?

zumgwadrad
09.07.2007, 15:18
Hi,
aha ich kann den Asynchronen Clock vom TIMER/Counter0 nur durchj einen externen Takt verstellen!
Das ist doof, dann muss ich überlegen wie ich des mit dem externen Takt mach!!
Weil aktuell läuft relativ wenig!!

Felix G
09.07.2007, 15:52
Naja, wozu musst du den Takt überhaupt reduzieren, bzw. was willst du damit erreichen?

Vielleicht gibt es ja auch eine andere Möglichkeit, die weniger Probleme verursacht.

zumgwadrad
09.07.2007, 16:04
Hi,
hab des Problem das sich mein Display aufhängt!
Denke das liegt an dem hohen Takt und den damit verbundenen EMV Störungen in der Zulietung!
Dann wenn ich das Kabel extrem kürze läuft des Display stabil! Brauche aber leider 12cm Leitung, deswegen wollte ich den Takt so auf ca. 2Mhz runterfahren!
Brauch abere auch den externen weil der ja um einiges genauer ist, und ich sehr exakte Wartezeiten einhalten muss!
Vielen Dank schonmal für die Hilfe

askazo
10.07.2007, 07:57
Dass sich Dein Takt in der Zuleitung zum Display breitmacht, ist aber schon ein massives EMV-Problem. Da würde ich eher was am Layout machen und das EMV-Problem an sich beheben, als an den Takt zu gehen.

Kannst Du mal Schaltplan/Layout posten?

askazo

zumgwadrad
10.07.2007, 09:05
Hi,
Layout ändern wird schwer! Hatte die Aufgabe mit dem vorhandenen Layout und Aufbau zu arbeiten und unter anderem dieses Display zu installieren! Des war ursprünglich eine Diplomarbeit und der ist nicht ganz fertig geworden!
Naja der Fehler mit dem Display taucht relativ selten auf und lässt sich durch ein Reset wieder beheben und ich geb auch die Woche noch ab und wollte des auch noch beheben!
Ich denke eben schon das es zu Störungen im Display kommt wenn ich relativ viele Zeichen schreiben will. Arbeite im 4bit Modus mit busy flag und da werden doch relativ viele Signale pro sek ans Display geschickt! Und dann kommt es natürlich zu Fehlern in der Zuleitung! Könnte die Zuleitung vll auch verdrillen. Flachbandkabel ist ja nicht die beste Lösung für Datentransport!
Viel Spaß no