BSF PORTA Probleme

Gast #321516
Lesenswert?
• ▲
▼
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?
Angehängte Dateien:
#321517
Lesenswert?
• ▲
▼
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.