Forums Neueste Beiträge
 

Problem ATmega88, Timer 2 mit 32kHz Quarz

10/08/2012 - 17:35 von Stefan | Report spam
Hallo,

ich habe da ein Problem und komme nicht weiter.

Ein ATmega88PA làuft mit dem internen RC Oszillator mit 8 MHz.

An xtal1 und xtal2 hàngt ein 32 kHz Uhrenquarz.

Timer 2 wird mit dem Uhrenquarz getaktet.

Der Prozessor wird jeweils so in den Sleep geschickt, dass er von Timer2
aufgeweckt werden kann.

Das ganze làuft meistens. Zuerst dachten wir, es làge am Reset, aber man
kann sehen, dass der Prozessor làuft. Lediglich der Timer2 INT kommt nicht.

Wenn ich manuell an Pin1 einen Reset mache, startet das ganze manchmal
aber nicht immer.


Initialisierung von Timer 2 sieht so aus:

// Program Timer2 in async (32KHz crystal)
SetBit(ASSR,AS2);
TCCR2A = 0;
TCCR2B = (1<<CS20)|(0<<CS21)|(1<<CS22); // clk/128
TCNT2 = 0;
SetBit(TIFR2,TOV2); // reset pending interrupt
SetBit(TIMSK2,TOIE2); // enable overflow interrupt

Hat da noch jemand eine Idee für mich?

Gruß

Stefan
 

Lesen sie die antworten

#1 Heiko Nocon
10/08/2012 - 18:51 | Warnen spam
Stefan wrote:

SetBit(ASSR,AS2);
TCCR2A = 0;
TCCR2B = (1<<CS20)|(0<<CS21)|(1<<CS22); // clk/128
TCNT2 = 0;
SetBit(TIFR2,TOV2); // reset pending interrupt
SetBit(TIMSK2,TOIE2); // enable overflow interrupt



Vergleiche dies bitte mit den Empfehlungen unter Punkt 18.9 des
Datenblatts zu diesem Thema...

Der Prozessor wird jeweils so in den Sleep geschickt, dass er von Timer2
aufgeweckt werden kann.



Bist du da sicher? Auch dazu steht einiges unter demselben Punkt zu
lesen.

Ähnliche fragen