Gast
#2586032
Moin Moin!
Ich habe ein Phänomen, was ich, mit meinem anscheinend sehr beschränkten
Verstand, nicht begreifen kann.
Wie kann es kommen, dass man in einem SFR Register ein Bit ausließt und
es anstatt einer 1, eine 0 erkennt?
Ich frage in der Interruptroutine das Bit 2 vom SSPSTAT Register ab und
bekomme im ersten Durchlauf als Ergebnis eine 1 und beim zweiten
Durchlauf eine 0.
Wenn ich im zweiten Durchlauf einen Breakpoint bei -movwf SSPSTAT_save-
setze, ist im Zwischenspeicher SSPSTAT_save das Bit 2 = 0 und wenn ich
im single-step weiter gehe ist das Ergebnis der Abfrage auf SSPSTAT,2 =
1.
Wie kann das sein?
r_w_abfr nop
banksel SSPSTAT
movf SSPSTAT,0 ;Test: Ablaufuntersuchung
(B) movwf SSPSTAT_save ;Test: Ablaufuntersuchung
btfsc SSPSTAT,2 ;read/write Abfrage
goto schreiben
goto lesen
Auch wenn ich das Bit, bei dem Ergebnis von 0, wieder zur Adresse
-r_w_abfr- schicke und weitere 255 mal abfrage, ob es auch wirklich 0
und nicht doch vielleicht 1 ist, macht es die Fehler.
Hoffe sehr, dass jemand das entscheidende Bit mehr an Verstand hat als
ich ;) und mir weiter helfen kann!?
Gruß
Daniel1979