www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fragen zum Interrupt Flag Register


Autor: Notker C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich hab hier ein paar sehr mysteriöse Dinge im Zusammenhang mit dem 
Interrupt Flag Register TFIR. Im TFIR wird bei Zählergleichheit mit dem
Vergleichsregister A das Flag OCF1A gesetzt. Soweit, so gut, das 
funktioniert auch. Soweit mir bekannt ist, kann dieses Flag durch 
Beschreiben wieder zurückgesetzt werden. Jedoch bleibt der Befehl 
outp(0x00,TIFR) wirkungslos! Ich habe mir mal den compilierten 
Assemblercode angesehen, dort steht hierfür der Befehl out 0x38,R1, 
wobei im Register R1 der Wert 0 steht, also soweit auch richtig 
übersetzt. Was mache ich falsch???
Desweiteren hab ich mal eine Frage zur Position dieses Bits. Im 
AVR-Studio ist OCF1A im Bit 4 angezeigt, nach Tramperts 
Mikrocontroller-Buch sitzt OCF1A im Bit 6 des Registers TIFR. Wie kommt 
das?

Aber wer kennt es nicht, das Gefühl, dass man irgendwann den Punkt 
erreicht, an dem man mal den PC ausmachen und eine Nacht über solche 
Dinge schlafen muss. Vielleicht sieht morgen ja alles ganz anders aus 
und die Position der Flags hat sich auf wundersame Weise verändert, wer 
weiss? ;-)

Beste Grüsse,

Notker

Autor: Pi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Notker,

das Ganze ist zwar etwas unlogisch, aber Interruptflags werden 
zurückgesetzt indem man sie mit einer "1" beschreibt.

Gruß Axel

Autor: Notker C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Axel,

danke für den brauchbaren Hinweis!

Ist schon eine etwas seltsame Logik aber oft beharrt man auf 
festgefahrenen Erfahrungen. Mit Mikrokontrollern ist es scheinbar wie 
mit dem Sex, man sollte ab und zu mal was ungewohnt neues ausprobieren 
;-)

Aber wenn mir noch jemand die Lösung des Rätsels mit der Bitposition des 
OCF1A-Flags verraten kann, dann bin ich rundum glücklich.

Gruss,

Notker

Autor: Pi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... ich nochmal .

Schau mal nach für welches Device der Simulator konfiguriert ist. Für 
den 2313 z.B. ist OCF1A auf Bitposition 6, das kann aber bei einem 
ATmega schon wieder anders sein.

Gruß Axel

Autor: Notker C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Axel,

den Prozessortyp hab ich richtig eingestellt, daran kann es nicht 
liegen. Er zeigt das Bit ja auch richtig an wenn es gesetzt ist.

Gruss,

Notker

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Wenn du einen 8515/35 oder 4434 als Prozessor hast ,
steht OCF1A auf  TIFR,5 ist also Bit 4.
 Gruß Uwe

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.