Forum: Mikrocontroller und Digitale Elektronik timer berechnung


von marvin (Gast)


Lesenswert?

hallo

ich bin anfänger und lese mir gerade ein avr-timer-tutorial von
avrfreaks durch: 
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106


es soll 1/20 einer Sekunde programmiert werden aber die Formel:

Target Timer Count = (1 / Target Frequency) / (1 / Timer Clock 
Frequency) - 1
                   = (1 / 20) / (1 / 1000000) - 1
                   = .05 / 0.000001 - 1
                   = 50000 - 1
                   = 49999

aber wenn ich doch 1/20 einer sekunde will müsste die formel doch lauten
(1/(1/20)/(1/1000000)-1???

Mit dem ergebnis kann ich auch so recht nichts anfangen, ich komme mir
vor wie in per anhalter durch die Galaxys 42??? Was bedeuten die 49999 
den genau ??? Ich will das ganze nicht einfach nur blind ausrechnen 
können, sondern auch verstehen.

von Krapao (Gast)


Lesenswert?

Wenn dein AVR 1000000 Takte in einer Sekunde macht, wie viele macht er 
dann in 1/20tel Sekunde?

Wenn deine Timereinheit beim Zählen bei 0 startet und zuerst einen Takt 
ausführt und dann erst prüft, ob ein Vergleichswert erreicht ist: Was 
musst du als Vergleichswert angeben, wenn du die Anzahl Solltakte für 
1/20tel Sekunde haben willst? Tipp: Spiele das mit 2 Solltakten mal 
durch.

von Uwe (de0508)


Lesenswert?

Hallo marvin,

schau mal in das Datenblatt deines ATEML AVR.

Dort findest Du so eine Formel:

counter = F_CPU / (PRESCALE * FREQUENZ) -1

Es gilt:
PERIODE = 1 / FREQUENZ <==>  FREQUENZ = 1 / PERIODE

FREQUENZ = 1 / 20ms = 50Hz

ok ?

.

von marvin (Gast)


Lesenswert?

also wenn ich 1MHz für eine Sekunde brauche dann brauche ich 50000takte
für 50ms, also leuchtet meine LED im 50ms Rhythmus.


danke

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.