Forum: Mikrocontroller und Digitale Elektronik Fragen zum Interrupt Flag Register


von Notker C. (Gast)


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

von Pi (Gast)


Lesenswert?

Hi Notker,

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

Gruß Axel

von Notker C. (Gast)


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

von Pi (Gast)


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

von Notker C. (Gast)


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

von Uwe (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.