ATmega48 runtertakten

Gast #1039511
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
#1039528
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
1
ldi r16, 0x80  ; Prescaler write enable
2
ldi r17, 0x08  ; Presacler Wert
3
sts CLKPR, r16
4
sts CLKPR, r17

MfG
Falk
#1039529
Lesenswert?
• ▲
▼
Falk Brunner wrote:
> Nein. Eher so
>
>
1
> ldi r16, 0x80  ; Prescaler write enable
2
> ldi r17, 0x08  ; Presacler Wert
3
> sts CLKPR, r16
4
> sts CLKPR, r17
5
>

Fast. Sicherheitshalber würde ich vor dem ersten Schreibzugriff noch die 
Interrupts deaktivieren, falls die Umstellung passieren soll, während 
dieselben eingeschaltet sind. Also
1
cli
2
sts CLKPR, r16
3
sei
4
sts CLKPR, r17
Gast #1039531
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren