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