-
Externen Takt halbieren
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!!
-
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
-
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?
-
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
-
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!
-
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
-
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?
-
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!!
-
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.
-
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