Timer2 für atmega8 will nicht

Gast #2287381
Lesenswert?

Hallo mc Gemeinde

Um es gleich vorweg zu nehmen, ich bin am verzweifeln. Es geht um 
folgendes:

Ich arbeite mit einem Atmega 8 und ich brauche einen genauen 
Sekundentakt. Um den Takt zu erhalten, verwende ich einen 32.786kHz 
Uhrenquarz.

Das ergibt bei einem Teiler von 128 einen periodischen Ueberlauf von 
modulo 256 eine Frequenz von genau 1Hz. Ich warte also den Overflow2 ab 
und zähle dann eine Sekunde hoch.

Aber...der Timer stimmt nicht. Und zwar geht mein Timer so etwa 7 
Sekunden pro Stunde zu schnell.

So ungenau kann ja kein Uhrenquarz sein.

Den Timer habe ich sicher richtig initialisiert.

Meine Frage ist, kann es sein, dass ich die Ports an denen der 
Uhrenquarz liegt sonst beeinflusse. Der Uhrenquarz liegt an Port B(1<<7) 
und (1<<6). Wenn ich irgendwo eine Null auf diese Ports gebe, kann das 
was ausmachen?

Und muss ich diese Ports als Eingang oder als Ausgang definieren. So wie 
ich das verstanden habe, handelt es sich um keine eigentlichen IO-Ports 
mehr, wenn ich den Asynchronen-Timer initialisiere (1<<AS2)?

Danke für Hinweise.
Gast #2287438
Lesenswert?

Hallo Hubert,

danke für die Antwort erstmal. Nein externe Kondensatoren habe ich keine 
dran und den Quarz habe ich direkt am Mc . Kannst du mir sagen wie ich 
CKOPT aktiviere?

Ich arbeite mit dem avr Studio und schreibe in C.

danke schön.

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