www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Quarz Frequenz Vorzähler Interrupt... Fehler?


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich glaube, ich habe einen Fehler in einem Tutorial auf
dieser Domain gefunden.

Seite:
http://www.mikrocontroller.net/articles/c/Uebung_9.htm

Text:
---------------------------------------------------------
Ich habe einen Quarz mit einer Frequenz von 386400 Hz eingesetzt. wenn
nun der Timer 1 mit dem Vorzähler 1 gestartet wird so läuft dieser jede
Minute genau 3375 mal durch. Wir brauchen also lediglich eine
Interruptroutine in den Timer 1 Overflow einzubinden und bei jedem
Aufruf einen Zähler zu inkrementieren. Erreicht dieser Zähler den Wert
3375 so ist eine Minute verstrichen.
---------------------------------------------------------


Der Quarz hat die Frequenz 386400 Hz. Da der Vorzähler 1 ist,
wird der Timer bei jedem Takt um 1 erhöht. Ich gehe davon
aus, dass es ein 8-Bit-Timer ist. Also löst er einen Interrupt
aus, wenn er 256 erreicht hat. Er löst also in einer Sekunde
386400/256 (ungefähr)= 1509 Interrupts aus. In 60 Sekunden,
also in einer Minute löst er also 386400*60/256 = 90562
Interrupts aus und NICHT 3375.
Hab ich da etwas nicht verstanden oder ist das tatsächlich ein
Fehler auf dieser Seite?

Martin

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ohne jetzt genauer zu schauen:
ist bestimmt ein 3,6864MHz-Quarz gemeint, der ist gängig und wird gern
und oft benutzt (UART!). Entweder Tippfehler oder Lesefehler von dir.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es war kein Lesefehler. Ich habe es gerade nochmal überprüft und
Diese MHz-Zahl kommt im Tutorial öfter vor, auch in dem
Beispielprogramm.

Mit 3,6864 MHz käme ich aber auch nicht auf den Wert 3375 pro Sekunde:
3686400*60/256 = 864000 (sogar viel größer als 3375)

Martin

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, geschaut.
Warum gehst du davon aus, dass ein 8bit-Timer benutzt wird?
Das Programm läuft mit dem Timer1, der ist 16bit.
Aber recht hast du insofern, dassdie Quarzfrequenz nicht korrekt
angegeben ist, im Programm steht es richtig. Wie schon vermutet,
3,6864MHz.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso g

Dann hab ich mich im Programm wohl verlesen. Im Tutorial
sind leider einige Fehler. Ich hab dazu schon was im
Verbesserungsforum geschrieben. Die Idee, das ins
Wiki zu stellen, ist echt gut. Die hatte dort jemand.

Jetzt komme ich endlich auf den richtigen Wert von 3375!
Danke!

Martin

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.