ATMEGA2561 TIMER2 ASYNC

#1437562
Lesenswert?

Hallo,

ich betreibe einen ATMEGA2561 mit externen 16MHZ Quarz, nun will ich den 
Timer2 Asyncron (32Khz) für eine RTC nehmen, da ich keine externe RTC 
zur Verfügung habe.
Der Atmega 2561 hat ja 2 Pins für XTAL und 2 Pins extra noch für TOSC 
(TIMER2).

Kann man überhaupt 2 externe Quarze benutzen oder muss ich den internen 
verwenden?
1
// ASYNCRONEN TIMER2
2
ASSR   = (1<<EXCLK);
3
_delay_ms(1000);
4
TIMSK2 = (1<<TOIE2);
5
TIFR2  = (1<<TOV2);
6
TCCR2B = (1<<CS22) | (1<<CS20);  // PRESCALER 128 (1sek)
7
TCNT2  = 0;
8

9
ISR( TIMER2_OVF_vect )                           
10
{
11
  TCNT2 = 0;
12
  time++;
13
}

Problem ist jetzt an meinem Programm noch das die ISR von Timer2 viel zu 
oft, also nicht alle Sekunde aufgerufen wird!
Woran könnte das liegen?

Gruß Denny
#1437756
Lesenswert?

Stefan Ernst schrieb:
> Denny S. schrieb:
>
>
> Dein Timer2 läuft immer noch mit System-Takt.
> Nochmal im Datenblatt die Bedeutung von EXCLK und AS2 nachlesen.

Habe schon mal das AS2 Bit gesetzt und auch beide, aber dann ruft er die 
Interruptroutine garnicht mehr auf!

Habe einen Atmega168 und läuft das ganze so ohne Probleme.

Noch jemand ein Tip?


Gruß Denny
#1437763
Lesenswert?

Denny S. schrieb:

> Habe schon mal das AS2 Bit gesetzt und auch beide, aber dann ruft er die
> Interruptroutine garnicht mehr auf!

Das kann dann eigentlich nur bedeuten, dass der 32kHz Quarz nicht 
schwingt. -> Timer zählt nicht -> kein Overflow -> kein Interrupt

>
> Habe einen Atmega168 und läuft das ganze so ohne Probleme.

Schön für den 168

> Noch jemand ein Tip?

Studier im Datenblatt das Kapitel über asynchrone Operation des Timers. 
Das ist alles ziemlich eindeutig beschrieben.

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