Hallo, ich beschäftige mich erst seit kurzem mit Mikrocontrollern und habe eine Frage bezüglich der Anzahl an Overflows. Ich möchte eine Lampe mit einer Periodendauer von 1sec zum blinken bringen. Mein Oszilator hat 12MHZ und mein Timer besteht aus 16Bit. Bei der Anzahl der Zählvorgänge für die Overflows bin ich mir jetzt nicht sicher. Ich hätte die Anzahl der Overflows wie folgt berechnet: 12MHZ/65535= 183 Overflows pro sec. 183/2=91 Overflows, da die Leuchte ja nur eine halbe Periode leuchtet. Aus 91Hz resultiert die Zeit 10.98 ms und diese müsste ich dann *46 nehmen um auf eine Blinkdauer von 500ms (Lampe leuchtet ja nur die hälfte der Zeit) zu kommen. Ist die Zahl 46 für die Anzahl der Zählvorgänge somit richtig? Vielen Dank
Hallo Ich habe nach deiner ersten Rechenaufgabe schon kb mehr gehabt weiterzurechnen, daher nur das was mir zu deinem Problem spontan eingefallen ist. Hardwareseitig: Warum 12 Mhz um eine Lampe blinken zu lassen " : Ein Prescaler für deinen Timer bietet sich grundsätzlich an Ich weiß ja nicht ob du deinen Timer für noch was anderes benutzen willst. Softwareseitig: Es ist etwas holperig mit Overflows zu arbeiten. Es geht zwar grundsätzlich ist in diesem Fall aber nicht notwendig. Schau dir auch mal den Compare von deinem Timer an da kannst du relativ exact arbeiten. http://www.avrfreaks.net/index.php?func=viewItem&item_id=292&module=Freaks%20Tools Schau dir mal diese Seite an da sparste dir den Taschenrechner.
Wofgang Markus schrieb: > Ich hätte die Anzahl der Overflows wie folgt berechnet: > 12MHZ/65535= 183 Overflows pro sec. Ja, mal abgesehen davon, daß der Zähler 65536 Schritte hat. > 183/2=91 Overflows, da die Leuchte ja nur eine halbe Periode leuchtet. > Aus 91Hz resultiert die Zeit 10.98 ms und diese müsste ich dann *46 > nehmen um auf eine Blinkdauer von 500ms (Lampe leuchtet ja nur die > hälfte der Zeit) zu kommen. > > Ist die Zahl 46 für die Anzahl der Zählvorgänge somit richtig? Müßte stimmen. Übrigens: Was hat diese Frage mit GCC zu tun?
Wofgang Markus schrieb: > Ich hätte die Anzahl der Overflows wie folgt berechnet: > 12MHZ/65535= 183 Overflows pro sec. > 183/2=91 Overflows, da die Leuchte ja nur eine halbe Periode leuchtet. > Aus 91Hz resultiert die Zeit 10.98 ms und diese müsste ich dann *46 > nehmen um auf eine Blinkdauer von 500ms (Lampe leuchtet ja nur die > hälfte der Zeit) zu kommen. > Ist die Zahl 46 für die Anzahl der Zählvorgänge somit richtig? Du hast doch schon 183 durch 2 geteilt, deshalb musst du auch 91 und nicht 46 Overflows verstreichen lassen. Nach 46 Overflows sind gerade mal ca 250ms vergangen. MfG Mark
Hi, also ich hab jetzt zwei verschiedene Antworten;), aber wenn ich überlege denk ich doch das die zweite mit 91 overflows die richtige ist. MFG Markus
Mark .. schrieb: > Nach 46 Overflows sind gerade mal ca 250ms vergangen. Wie kommst du darauf? Bei 10,98 ms pro Overflow sind nach 46 Overflows 10,98 * 46 = 505,08 ms vergangen.
Ach so, jetzt seh ich es auch. Die 10.98 ms resultieren schon aus einem halbierten Wert.
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.