mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega16 - 16BitTimer - Verständnisproblem


Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits!
Ich experimentiere hier gerade mit dem 16-Bit Timer und einem 
LED-Lauflicht herum.
Leider scheint mein Verständnis von diesem Timer vollkommen falsch zu 
sein.

Zu meiner Schaltung: Am ATMega16 hängt ein 11,0592MHZ Quarz (wie in den 
meisten Tutorials) und ein LED Lauflicht mit 8 LEDs.

In meinem Programm habe ich den Timer nun mit einem Prescaler von 256 
versehen (d.h. Bit CS12 gesetzt).
Das OutputCompare Register steht zur Zeit auf "OCR1A = 0x0002".

Das ganze löst dann ein Interrupt aus, welches wiederum einen Zähler 
erhöht. Wenn der bei 1000 angekommen ist, schalte ich das Lauflicht um 1 
weiter.
Was ich also gerne hätte ist, dass das OutputCompareMatch genau jede 
Millisekunde ausgelöst wird, so dass das Licht jede Sekunde um 1 
weitergeht.


Allerdings läuft das ganze UNENDLICH langsam. Anstatt jede Sekunde 
dauert es fast 20 Sekunden, bis die LED weiterspringt. Ich habe auch 
schon mit allen möglichen Werten für das CompareRegister und den 
Prescaler rumprobiert, aber es will einfach nicht.

Meine Rechnung:
Wenn der Quarz 11,0592MHZ hat, und der Prescaler bei 256 liegt, läuft 
das ganze noch mit 43.200HZ.
Da mein Compare Register auf 2 steht, müsste eigentlich 22.000 pro 
Sekunde "interrupted" werden, richtig (das ergäbe zwar keinen 
MilliSekundentakt, aber trotzdem was ganz schnelles)?
Aber warum ist das ganze dann soooooo langsam?

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du den Takt für den Timer auf den 11.irgentwas Mhz Takt gelegt? 
Wenn der nämlich noch auf einen anderen langsameren Takt wie z.B. 
systemclock läuft ist halt alles viel zu langsam. Ich weiss nicht wie 
das bei den AVRs geht. Aber irgentwas mit Clock select oder so.


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso mit programmierbarer Logik hat das hier nicht viel zu tun

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
taktet der Controller denn wirklich per Quarz oder rennt Der noch intern 
(so wie er geliefert wurde) mit 1MHz vor sich hin?

bye

Frank

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe tatsächlich das falsche Forum erwischt :-(  SORRY
Werde den Beitrag "rüberschieben..."

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.