Werte Damen und Herren. Habe nun schon wieder eine Frage. Sowohl zum AVR-Studio4.1x als auch zum Taktteiler. Weil ich Englisch zwar einigermaßen gut lesen, aber nur bruchstückhaft verstehen kann, nützt mir die Beschreibung des Tiny2313V nicht immer viel. Vor allem wenn Zusammenhänge erklärt werden, die nun mal nicht ganz trivial sind. Die Fachbegriffe merkt man sich mit der Zeit und ich kann vieles selbst herauslesen. Current bedeutet Strom (mA), Flash ist der Programmspeicher im AVR usw... Natürlich habe ich versucht, den Abschnitt der den Taktteiler beschreibt zu verstehen. Das gelingt mir aber nicht vollständig (mit fast 60 wird Englisch sicher nicht mehr zu meiner Muttersprache). Wie man generell die Taktquelle mit passender Startzeit auswählt, habe begriffen. Ich würde aber gern nur den Taktteiler dauerhaft ändern. Das scheint mir nicht so einfach zu sein. Irgentwo im WWW habe ich gelesen (manchmal findet man auch was deutsches zum speziellen Problem), das es mit bestimmten Registerlade-Befehlen sogar während der Laufzeit des AVR-Programms gehen soll. Ansonsten findet man zwar meistens nur den Hinweis auf das CKDIV-Register, aber nicht wie man z. B. im AVR-Studio vorgehen muß, um den Taktteiler dauerhaft zu verändern. Klar ist mir, das der Tinny2313 mit eingeschalteten internen RC-Oszillator mit der Einstellung auf 8MHz und dem nachfolgenden Taktteiler auf 8 ausgeliefert wird. Somit arbeitet der 2313 original erst mal mit 1MHz. Das Ergebnis beim Auslesen der Fuses meines Boards zeigt das auch so, was sich mit der Beschreibung deckt. Hätte gern mal probehalber den Taktteiler auf 16 statt 8 gestellt (später brauche ich 256) um mal zu sehen, ob die LEDs in meiner fertigen Zielschaltung dann auch wirklich mit der halben Frequenz blinken. Eine spätere Anwendung würde nahelegen, dann gleich mit 128KHz durch Teiler 256 zu arbeiten. Schneller braucht eine 7-Segmentanzeige mit 2313 als BCD-Dekoder nun mal nicht zu sein. Weil die ISP-Frequenz meines Programmers bis herunter zu 50Hz einstellbar ist, sollte es doch funktionieren. Weil ich mein "Targetboard" keinesfalls gleich totlegen will, habe ich mal damit gespielt: http://www.engbedded.com/fusecalc Man kann dort, wie anscheinend auch im AVR-Studio ganz unten auch die Hex-Werte ändern. Dabei hat sich aber auch die Taktquelle u. A. unabsichtlich mit verstellt. Ich will aber wirklich nur den Teilerfaktor ändern. (Später zusätzlich interner Takt auf 128KHz mit Teiler 256.) Eigentlich wollte ich nach Tabelle 12 in der Tiny2313 Beschreibung vorgehen. Vorerst will ich nur den Teiler von 8 auf 16 ändern um zu sehen ob die LEDs dann halb so schnell blinken. Was mache ich da falsch? Vielen Dank: Wolfg.
W. Meyer schrieb: > Hätte gern mal probehalber den Taktteiler auf 16 statt 8 gestellt Das geht nicht. Da gibt es Taktteiler bei der Konfiguration der Timer, die sind dafür da
Lass die Fuses auf Auslieferungszustand und beschäftige dich mit den Timern im Tutorial
Welchen Sinn hat dann diese Tabelle in der Beschreibung des 2313V? Wolfg.
Hi
>Welchen Sinn hat dann diese Tabelle in der Beschreibung des 2313V?
Das sind die Teilerfaktoren für das Clock Prescale Register (CLKPR). Das
must du aber im Programm setzen.
MfG Spess
Hallo Wolfgang, 1. die "fast 60" sind kein Hinderungsgrund, gehöre schon zu Ü60 2. Die Tabelle gibt an durch welchen Faktor der Oszillatortakt (Systemtakt) geteilt wird, bevor er z.B. auf einen Teilereingang gelangt. Beispiel: Ist das Bit CLKPS1 gesetzt, die anderen gelöscht, wird der Systemtakt durch 4 geteilt bevor er z.B. zum Timer gelangt. Die Bits stehen in einem Register, auf das Du per In/out oder LDS STS zugreifen kannst. Somit kannst Du diese Bits per Programm setzten/löschen. Die Fuse "Clock durch 8 teilen" hat mit den Bits CLKPSx nichts zu tun. Betrachte dies einfach als einen per Fuse zuschaltbaren zusätzlichen Teiler.
Erst mal vielen Dank für die Antworten. Es geht also wirklich nur vom Anwender-Programm aus. Schade. Habe was gefunden, was natürlich noch auf den 2313 angepaßt werden müßte: #include "tn13def.inc" ldi r16,(1<<clkpce) ; erlaube Änderung des Clock-Prescaler out clkpr,r16 ldi r16,(1<<clkps3) ; Teile den Takt durch 256 out clkpr,r16 So könnte ich bei einer Versorgung mit Batterie Strom sparen. Das ist der eigentliche Sinn der Sache. So spare ich eben erst nach dem Hochfahren. Das tut es aber auch. Allerdings habe ich die Anleitung so verstanden, daß evtl. noch ein spezielles Regime eingehalten werden muß (4 Takte?). Hauptsache die Taktquelle und alles Andere wird nicht verändert. Sehr vielen Dank für Eure Antworten: Wolfg.
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.