8bit-Timer-Overflow pollen?

Gast #340583
Lesenswert?
• ▲
▼
hi,

ich wollte in einem programm so lange warten, bis der 8bit Timer im
mega8 einen Overflow meldet. Eigentlich ganz einfach, hatte ich mir
gedacht:

wait:  sbrs TIFR, 0
  rjmp wait
  cbi TIFR, 0

Kompiliert er mir aber nicht (illegal argument), obwohl TIFR wie z.b.
PINB in der m8def.inc unter I/O-Register steht.

Hat jemand eine Lösung?
Gast #340585
Lesenswert?
• ▲
▼
cbi geht nur mit den 32 unteren I/O-Registern. Außerdem löscht man ein
Interrupt-Flag mit einer 1 und nicht mit einer 0. Bitte lies Dir das
Datenblatt und das Instruction Set Manual mal genauer durch.
Gast #340589
Lesenswert?
• ▲
▼
wait: in r16, TIFR
      sbrs r16, 0
      rjmp wait
      out TIFR, r16

Kleiner Tip am Rande: Bei Assembler-Programmierung immer das
Instruction Set Manual und das Datenblatt des jeweiligen µCs (sowieso)
in Reichweite haben. Wenn mal irgendwas wie oben passiert, kann man
schnell im ISM nachsehen, was der Befehl für Operanden hat und wenn er
nur mit bestimmten Registern funktioniert, im Datenblatt im Register
Summary nachsehen, ob das gewünschte Register überhaupt in Reichweite
des Befehls liegt.

Einige Befehle, die mit I/O-Registern arbeiten (eben z.B. sbi und cbi)
haben nur Platz für 5 Bits Register-Adresse, also 0x00...0x1F (0...31d)
und können deshalb nur auf die Register mit den Adressen bis 0x1F
zugreifen (0x1F ist bei den AVRs [zumindest bei denen mit EEPROM, was
mittlerweile auf die meisten zutrifft] das EEARH, kann man sich als
'Landmarke' merken).

Gruß

Johnny

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.