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
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.