www.mikrocontroller.net

Forum: Compiler & IDEs Frage zu Anzahl Overflows


Autor: Wofgang Markus (markus22)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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&i...
Schau dir mal diese Seite an da sparste dir den Taschenrechner.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wofgang Markus (markus22)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so, jetzt seh ich es auch. Die 10.98 ms resultieren schon aus einem 
halbierten Wert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.