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,
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!!
Ich bin keine Signatur ich mach hier nur sauber
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?
Ich bin keine Signatur ich mach hier nur sauber
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!
Ich bin keine Signatur ich mach hier nur sauber
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?
Ich bin keine Signatur ich mach hier nur sauber
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!!
Ich bin keine Signatur ich mach hier nur sauber
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.
So viele Treppen und so wenig Zeit!
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
Ich bin keine Signatur ich mach hier nur sauber
Lesezeichen