www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Timer Prescaler Problem


Autor: Bastian G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe ein Problem mit dem Prescaler des Timer1 auf meinem AVR 328 
(Arduino Board mit Arduino Entwicklungsumgebung).

Wenn ich den Prescaler auf 64 (TCCR1B CS12=0, CS11=1, CS=10=1) setze, 
dann wird, wie von mir gewünscht, die Timer1 Overflow Routine 
(TIMER1_OVF_vect) richtig und kontinuierlich aufgerufen.

Setze ich aber den Prescaler auf 256 (TCCR1B CS12=1, CS11=0, CS=10=0), 
dann wird die Overlow ISR genau 1 mal ausgeführt, danach nie wieder.

Am Code habe ich, mit Ausnahme von TCCR1B ansonsten nichts geändert?

Woran könnte das liegen, habt ihr eine Idee?

Grüße,
Bastian

Autor: Sebastian Förster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie bekommst du denn raus, dass er den Timer Interrupt nicht mehr 
aufruft? Vielleicht liegt ja darin der Fehler... Und Simulierst du oder 
läuft das Programm auf dem AVR?

Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
hast du vielleicht vergessen das Interruptflag zurückzusetzen?!

Autor: Bastian G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich lasse einen Zähler in der ISR inkrementieren und lasse mir den 
seriell ausgeben. Beim Prescaler 64 läuft er normal hoch, beim 256er 
bleibt er konstant auf 1.

Ich lasse ihn direkt auf dem AVR laufen, nicht im Simulator.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> hast du vielleicht vergessen das Interruptflag zurückzusetzen?!

Das kann man nicht vergessen, denn es ist überflüssig.  Beim Einsprung 
in die Interrupt-Routine macht der AVR das selbst.

(Edit: "nicht" raus)

Autor: Basti M. (counterfeiter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht läuft dein Sendebuffer über und lässt deinen Controller 
abschmieren, weil er die Daten nicht schnell genug weggesendet 
bekommt...
ist mir jedenfalls schon passiert... vielleicht nur jeden 100ten 
Zählerschritt was senden lassen?

Autor: Bastian G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sebastian:

Nein, das sollte es nicht sein. Bei einem höheren Prescaler wird die 
Senderate ja sogar noch geringer..

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.