Timer Berechnung "nur der Form halber"

OP #2958538
Lesenswert?

Hallo Leute,

ich hab mich gerade damit beschäftigt mir mit meinem Atmega 8 (clk 
3,6864MHz)
den Timer0 auf 1ms einzurichten.

Alsom habe ich mich ein bisschen im Internet belesen und habe auch die 
Ergebnisse mehrerer Programme verglichen.

Folgende Lösung habe ich nun gefunden:

Gewünschte Zeit: 0.001 s = 1ms
Rechnerich am nächsten gelegen: 0.0010069444444444444 s
Verwendeter prescaler: 64
Verwendeter preload: 198


ok schön und gut. nun weiß ich wie ich ihn einstellen muss. Aber mich 
stört schon ein wenig einfach alles "vorgekaut" zu bekommen.

Also hab ich die Formel aus dem gcc die ich gefunden habe genommen und 
mal nachgerechnet.

(2^8bit * 64) / ( 3,6864MHz * 1000) = 4,444444ms

aber nicht 1 ms!
Und den Wert von 198 für TCNT0 habe ich nicht wirklich begriffen.
Ok ich "kürze" den Timer etwas ab, sodass der Zählwert wohl anders ist, 
aber gibts dafür auch eine Formel, dass ich das auch mal verstehe, 
anstatt es abzukäsen? Gefunden habe ich diese nämlich nicht.

Danke für eure Hilfe!
Sven
OP #2958547
Lesenswert?

schon klar, aber woher weiß das programm, was mit den wert gab, dass 
dieser 198 sein muss. ich möchts einfach verstehen.

schließlicht sind 4,44ms nicht 1ms!

ich hab gerade mal nachgerechnet. wnen mit einem prescaler und einer 
auflösung von 8bit 4,44ms rauskommt bei 256 zählschritten dann kann ich 
das durch 4,44 teilen und erhalte so 1ms!

dann muss ich wohl dem zähler einen wert von 3,44ms vorgeben, 
umgerechnet in zählschritte -> 198

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