Forum: Compiler & IDEs Atm8515L Uhr programmieren, Timer Rechnung stimmt nicht


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Problem mit der Berechnung eines 8Bit Timers bei einem 
ATmega8515L.
Ich benutze den int. Oszilator der auf 4 Mhz eingestellt ist.
Den Vorteiler des Timers habe ich auf 1024 eingestellt und bei jedem 
Timeroverflow wird eine globale Variable um 1 erhöht.

Zu der Rechnung habe ich mir folgendes gedacht: Systemtakt / 1024 = 
3906,25
Interrups pro Sekunde. Bei jedem Interrupt wird ein Variable um 1 erhöht 
bis 244 erreicht sind, dann wird eine weiter Variable um 1 erhöht bis 
diese bei 16 ist, macht also 16*244=3904 das entspricht ca. 1 Sekunde ( 
ca. 0,06 % Fehler, aber ausreichend für einen ersten Test ).

Wenn ich das Programm zum MCU übertrage, läuft das auch, aber die Zeit 
ist um ein vielfaches höher als 1 Sekunde.

Zur Hardware: AtmelATm8515L, LPT Programmierkabel und STK 500 vorhanden.

Wäre schön wenn mir da jemand Helfen könnte, ich hab leider in der suche 
kein ähnliches Problem gefunden.

Besten Dank !

Michael

von Stefan E. (sternst)


Lesenswert?

> Systemtakt / 1024 = 3906,25 Interrups pro Sekunde

Nein, sondern:
1
Systemtakt / 1024 / 256 = ca 15 Interrups pro Sekunde

Der Overflow-Interrupt wird ausgelöst, wenn der Zähler vom maximalen 
Wert wieder auf 0 "umspringt". Bei einem 8-Bit Zähler also alle 256 
Zählertakte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.