ATtiny85 Takt setzen

OP #3658645
Moin Moin zusammen,

vorhin sind meine gestern bestellten ATtiny85 angekommen. Da ich mein 
Shiftregister-Test-PCB schon mit Sockel (und Stützkondensatoren ;) ) 
vorbereitet hatte, brauchte ich den nur noch reinstöpseln, USBasp 
irgendwie ranstecken, Programm anpassen (ATmega328: auf PORTC, ATtiny85: 
hat nur PORTB).
Die Voreinstellungen für avrdude waren schnell anzupassen, unter 
Hardware kann man dann ja den Zielprozessor einstellen. Habe dort 
ATtiny85 ausgewählt, man kann dort auch den Takt einstellen. Ich habe 
jetzt mal den krummen 11,xxxMHz-Takt ausgewählt. Damit soll der ATtiny85 
laut irgendeinem Online-Rechner auch mit 3,0V laufen (plane den Betrieb 
direkt an einem LiIon-Akku von 4.2-3.0V).
Vom Delay-Loop her musste ich aber massiv anpassen; 16MHz auf dem 
ATmega328 brauchten 3200 NOPs für gewünschten Zustand, der ATtiny85 
jetzt 250 - und ist damit noch etwas langsamer; 200 war mir schon zu 
schnell, kommt aber eher hin.
Das ist ziemlich genau der Faktor 16. Ich vermute daher, der ATtiny85 
läuft nicht mit 11,xxx, sondern mit 1 MHz.

Daher die Frage, wie stelle ich das ein? In der Eclipse-AVR-Toolchain 
offenbar nicht. Klappt das aus dem Programm heraus? Der kleine AVR hat 
laut Datenblatt ja sogar 'ne PLL nebst internen Oszillator.
Angehängte Dateien:
Gast #3658962
>Die ist für was anderes.

Die PLL-Frequenz kann durchaus als Systemtakt dienen, man kommt damit 
bis auf 16 MHz. Nur macht der Rest des Controllers dies bei 3.0 V nicht 
mit, es bleiben dann wieder nur 8 MHz.
Gast #3658985
Dirk K. schrieb:
> Vom Delay-Loop her musste ich aber massiv anpassen; 16MHz auf dem
> ATmega328 brauchten 3200 NOPs für gewünschten Zustand,

Schon mal was von TIMER gehört....für was man die wohl verwenden kann.
Manchmal verstehe ich es nicht. NOPen sich zu Tode.
OP #3659168
Tjo BattMan, natürlich kann ich Timer.

Manchmal muss es aber eine schnelle Fingerübung sein. Und da ist ein NOP 
eindeutig schneller hingezaubert.

Timer kommt dann mal, wenn ich richtig langeweile habe.

... eine etwas sinnfreie Beschwerde. Es gibt Mercedes, warum fahren den 
nicht alle?

@MWS/alterHans und die anderen: Danke für die Tipps :) Werde mich wohl 
mal genauer mit dem Datenblatt auseinandersetzen und dann mal zusehen, 
ohne Fuses zu verdrehen den Takt aufzumachen :)
OP #3659349
Nachtrag: Der Tipp mit clock_prescale_set() war super, Danke MWS - jetzt 
rennt der Kleine mit 8 MHz, direkt gespiesen durch einen 18650er 
LiIon-Akku und macht nichts anderes, als LEDs am Schieberegister zu 
blinken.
Habe mir dazu grade auch ein ISP->ATtiny85-Board gelötet, ist einfacher, 
den Prozessor so zu beschreiben. Auch, wenn ich ihn hin- und herstecken 
muss.

Jetzt geht es ans Aufräumen: Mal Timer auf dem Lütten antesten, 
vielleicht noch andere "Animationen" basteln. Eine gute Übung, um damit 
und zwei Schieberegistern einen 3x3x3-Cube anzutreiben. Habe zwar 
Mini-Arduinos bis zum Umfallen, aber für so ein bisschen LED-Blink-Blink 
sind die einfach noch zu groß dimensioniert.
Gast #3660408
> es bleiben dann wieder nur 8 MHz.

Stimmt nicht ganz: wenn man sich die Mühe macht, die einzelnen Exemplare 
auszumessen, dann lässt sich per OSCCAL der Systemtakt weitgehend 
anpassen, man kommt also auf die (bei 3.0 V zulässigen) 11.7 MHz.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 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.