PIC asm: wie wert vom port abfragen?

OP Persönliche Seite #503359
Lesenswert?
• ▲
▼
hallo,
ich will mit "btfsc PORTB,H'xx'" einen bestimmten wert abfragen. wenn 
dieser erreicht ist, soll die nächste zeile ausgeführt werden.
mein problem ist, dass sich das nicht so verhält, wie ich will: z.b. ist 
H'02' nicht der wert 0x02 sondern 0x04 und H'03' ist 0x08. was mache ich 
falsch?
Gast #503475
Lesenswert?
• ▲
▼
Ganz so einfach geht es leider nicht, Ernst schrieb ja schon dass btfsc 
nur ein einzelnes Bit vergleicht und nicht alle 8 Bit von PortB.

Ich hätte jetzt nur einen Vorschlag für PIC18 Controller

movlw 0x09 ;zu vergleichender Wert (aus Deinem Beispiel)
xorlw PORTB,w ;Vergleich durch Exklusiv-Oder Verknüpfung
               ;Gleichheit ergibt Zero, also Z-Flag gesetzt
btfsc STATUS,Z ;überspringe nächsten Befehl bei Ungleichheit
Gast #503554
Lesenswert?
• ▲
▼
Freut mich dass Du meinen (unabsichtlichen) Fehler gefunden hast.
Ich hab zwar jeden Tag beruflich mit dem Kram zu tun, aber sowas kommt 
immer wieder vor wenn man ohne Zusammenhang mit einem Programm was aus 
dem Hut zaubert.

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.