mega168 async. Timer2 zu schnell

#3904052
Lesenswert?

Kurrios! Ich hnutze den Mega168PA mit 8Mhz internem und 32,768kHz 
asyncronen Takt für Timer2. Die Routinen funktionieren alle, nur läuft 
der Timer ca. 3 Mal zu schnell. Ich komme nicht auf den Fehler.

Initialisierung:
1
TCCR2B  |= (1<<CS22) | (1<<CS20) | (1<<CS20); // 128- Vorteiler der 32,768 kHz Clock, Timerüberlauf dann genau alle 1 Sekunden
2
ASSR  |= (1<<AS2); // asynchrones Arbeiten
3
TIMSK2  |= (1<<TOIE2); // overflow erlauben

Der Controller geht in den Sleep Modus und in der Software wird bei 
jedem Aufwachen eine Variable um 1 erhöt. Erst dachte ich, der Interrupt 
wird zu oft ausgeführt aber leider ist dem nicht so, die Variablenwerte 
stimmen. (Bei einem bestimmten Wert wird etwas gemacht, dabei die Werte 
geschickt und diese stimmen).

32,768kHz Quarz von Reichelt mit 2x 10pF Kondensatoren. Kann der Quarz 
defekt sein?

Wer hat einen Tip!?
#3904059
Lesenswert?

Hallo Tino,

hast Du das entsprechende Datenblatt und die AP von Atmel zum 32kHz 
Quarz gelesen.

I.A. wird der 32kHz Quarz direkt - ohne Platine dazwischen - an die Pins 
des Atmel gelötete.

Hier ist dein Problem:
1
TCCR2B  |= (1<<CS22) | (1<<CS20) | (1<<CS20);
#3904073
Lesenswert?

Uwe S. schrieb:
> Hallo Tino,
>
> hast Du das entsprechende Datenblatt und die AP von Atmel zum 32kHz
> Quarz gelesen.
>
> I.A. wird der 32kHz Quarz direkt - ohne Platine dazwischen - an die Pins
> des Atmel gelötete.

Crystals specifying load capacitance (CL) higher than 6 pF, require 
external capacitors applied as described in Figure
9-2 on page 28.

Den ich habe, der hat 9pF. Also sollte doch alles stimmen

>
> Hier ist dein Problem:
>
1
TCCR2B  |= (1<<CS22) | (1<<CS20) | (1<<CS20);

Bist du sicher? Was genau? Das doppelte war nur bei Probieren, kann man 
schnell auf CS21 ändern...
#3904079
Lesenswert?

g457 schrieb:
> Nur mal für Spass:
>
>> ASSR  |= (1<<AS2); // asynchrones Arbeiten
>
> ..zuerst, dann TCCR2A und TCCR2B explizit setzen (nicht verodern).

Reihenfolge getauscht, Kurriosität noch da. Wie gesagt, das Teil 
funktioniert, nur halt 3x zu schnell...


> ..zuerst, dann TCCR2A und TCCR2B explizit setzen (nicht verodern).

das Verodern habe ich aber im Tutorial so gelernt...

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