www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer1 funktioniert nicht?


Autor: hundvdf (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich hab ein kleine Problem mit meinem Timer 1. Ich will einfach
sekunden zählen lassen und diese über LEDs anzeigen. Im
AVR-Studio-Simulator funktionierts, da zählt er die Sekunden hoch, aber
im AVR nicht. Ich hab nen 8515er und wenn ichs mit dem Timer0 mache,
dann funktionierts. Ich muss aber den Timer1 dazu nehmen, da ich später
zwei unabhängige Timer brauche. Kann es sein, dass im AVR der Timer1
defekt ist und nur der TIM0 funktioniert? Oder hab ich im Code was
vergessen, was das Studio ignoriert, der AVR aber nicht?

thx für Antworten
hundvdf

Autor: Remo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Fehler steckt hier:

loop1:
  in temp,TCNT1H

Du mußt immer zuerst das lowbyte lesen und anschliessend das high byte,
sonst liest du immer den gleichen alten Wert aus dem internen
temporaeren Register.
Richtig also:
loop1:
  in temp,TCNT1L
  in temp,TCNT1H

Dieses Verhalten kann der Simulator nicht nachstellen und simuliert die
heile Welt, aber eben nicht das was im AVR wirklich passiert.

Auszug aus dem Datenblatt:
"TCNT1 Timer/Counter1 Read:
When the CPU reads the low byte TCNT1L, the data of the low byte TCNT1L
is sent to the CPU and the data of the high
byte TCNT1H is placed in the TEMP register. When the CPU reads the data
in the high byte TCNT1H, the CPU receives
the data in the TEMP register. Consequently, the low byte TCNT1L must
be accessed first for a full 16-bit register read
operation."

ciao
Remo

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und dann solltest du in der ISR noch das SREG sichern und
wiederherstellen...

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.