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
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.
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
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.
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
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.