Frage zu Anzahl Overflows

OP #1737144
Lesenswert?

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
Gast #1737152
Lesenswert?

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.
Gast #1737186
Lesenswert?

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?
#1737217
Lesenswert?

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

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