Studio4.x & Takt-Teiler.

Gast #2794926
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.
Angehängte Dateien:
Gast
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
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.