Fragen zum Interrupt Flag Register

Gast #2816
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
Gast #2818
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
Gast #2819
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren