www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega48 runtertakten


Autor: Torsten O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
N' Abend, ich hab' da mal 'ne Frage zum Runtertakten des µC. Werkseitig 
ist 1 MHz eingestellt - nun versuche ich mit dem Prescaler-Register noch 
weiter runterzutakten, aber das funktioniert nicht wie ich es mache.

Ich habe das so geschrieben :

Vorbereiten:

cli
ldi     R16, 0x80
sts     CLKPR, R16                      ; Enable setzen

Fertig:

lds     R16, CLKPR                      ; Prüfen ob Bit noch gesetzt ist
sbrc    R16, 7
rjmp    Ready

Teilen:

ldi     R16, 0x08                  ; Takten
sts     CLKPR, R16
sei

Ich war eigentlich der Meinung, dass ich das so richtig verstanden habe 
im Datenblatt. Also als erstes, den "Prescale Enable" setzen, dann 
warten bis er soweit ist (vier Takte soll das dauern) und dann kann ich 
die Frequenz runtertakten. Aber so funktioniert es eben nicht. Haben die 
FuseBits da auch noch was mitzureden?

Vielen Dank im voraus


lg Torsten

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Torsten Ohne (tome28)

>weiter runterzutakten, aber das funktioniert nicht wie ich es mache.

Weil es falsch ist.

>warten bis er soweit ist (vier Takte soll das dauern) und dann kann ich

FALSCH! Innerhalb der vier Takte muss der zweite Schreibzugriff 
erfolgen, sonst ist es Essig mit der Umstellung!

>die Frequenz runtertakten. Aber so funktioniert es eben nicht. Haben die
>FuseBits da auch noch was mitzureden?

Nein. Eher so
ldi r16, 0x80  ; Prescaler write enable
ldi r17, 0x08  ; Presacler Wert
sts CLKPR, r16
sts CLKPR, r17

MfG
Falk

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner wrote:
> Nein. Eher so
>
>
> ldi r16, 0x80  ; Prescaler write enable
> ldi r17, 0x08  ; Presacler Wert
> sts CLKPR, r16
> sts CLKPR, r17
> 

Fast. Sicherheitshalber würde ich vor dem ersten Schreibzugriff noch die 
Interrupts deaktivieren, falls die Umstellung passieren soll, während 
dieselben eingeschaltet sind. Also
cli
sts CLKPR, r16
sei
sts CLKPR, r17

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Also als erstes, den "Prescale Enable" setzen, dann
>warten bis er soweit ist (vier Takte soll das dauern)

Nein, Du sollst die vier Takte nicht abwarten, sondern Dein Geschäft 
erledigen, solange die noch nicht rum sind.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich plädiere für

cli
sts CLKPR, r16
sts CLKPR, r17
sei

Autor: Bastian Nagel (slime2k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War da nicht was mit der nächste befehl nach sei wird noch ausgeführt 
bevor der erste (mögliche) interrupt angesprungen wird?

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heruntertakten kannst Du ihn nur per Fuse oder durch eine entsprechende 
externe Taktquelle.

Autor: Fuzzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie weit kann man einen AVR eigentlich runtertakten.
Ich habe schon Behauptungen gehört, das man ihn extern mit 10 Hz oder so 
takten kann.
Wäre zum debuggen mit altem/einfachen Gerät doch irgendwie praktisch.

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im datenblatt eines avrs ist als minimaler takt meistens DC zu lesen.
also taster dran fleißig morsen =)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.