servus zusammen ich bin pic neueinsteiger und versuche zur zeit ein codetastatur zu programmieren. jetzt habe ich folgendes problem ich kann mit meiner tastatur zwischen zwei verschiedenen moden auswählen sobald ich im modus "maineingeben" bin möchte ich das RA1 UND RA3 gesetzt ist doch ausgegeben wird NUR RA3 soblad ich im modus "mainaendern" bin möchte ich das RA2 UND RA0 gesetzt ist doch ausgegeben wird NUR RA0 wieso wird "anscheinend" mein PORTA bei einem neuem BSF - Befehl gelöscht?
Hallo Maurice! BSF und BCF sind Read-Modify-Write-Befehle, sprich der ganze Port wird eingelesen, das entsprechende Bit verändert und wieder zuruckgeschrieben. Zwei aufeinanderfolgende Befehle werden aber genaugenommen nicht nacheinander abgearbeitet, sondern ineinander versetzt (sogenanntes Befehlspipelining). Das heisst der zweite Befehl liest das Port schon, bevor die Daten vom ersten Befehl im Ausgangsregister "angekommen" sind!! Du kannst entweder einen Leerbefehl(NOP) einfügen, oder das PORTA als Byte schreiben, da wird nichts gelesen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.