Werte Programmiergemeinde, ich hoffe ihr könnt einem Anfänger eine Frage beantworten und hoffentlich eine Idee bestätigen. Ich möchte meinen PIC16f690 über eine RS232-SChnittstelle ansteuern.Aber darum geht es gar nicht. Die Befehlsdaten verstecken sich in einem kompletten Byte. Nun möchte ich dem PIC sagen, das er die ersten 5 Bit dieses Bytes mit einer in ihm gespeicherten Bitfolge vergleicht. Wird das Carryflag gesetzt, ist er gemeint und er soll den Befehl der in den letzten 3 Bit codiert ist ausführen. Wenn nicht, soll er das Byte weitersenden. Nun meine Frage ob die Idee, alles in ein Byte zu packen machbar ist oder nicht? Kann ich dem Pic beibringen nur eine Bit des Bytes zu vergleichen? Vielleicht nach dem Motto, Bit 5 ist HIGH, dann mache dies, oder Bit 2 ist LOW dann mache das? Ich möchte bitte nur wissen ob dies möglich ist, eventuell einen kleinen Hinweis wie man dies macht. Auf die Komplettlösung möchte ich dann selber kommen. Gruß Freedzz
Verzeihung, aber es handelt sich um Assemblerprogrammierung. Ich vergass, dies mitzuteilen. Gruß Freedzz
wenn du eine AND- Funktion ausführst die "Eingelesenes Byte" AND 11111000 verknüpft hast du diesen Wert isoliert. schibest du das ganze 3 mal nach rechts sogar als "wirklicher Wert". "Eingelesenes Byte" AND 00000111 liefert dann eben die befehlskennung. Ich habe schon ewig nix mehr in Assembler gemacht auf Pics, aber das dürfte recht einfach zu realisieren sein. Gruß, Jens
Jepp, grad geschaut, ANDLW, RRF und eben das ganze MOVLW und MOVWF zeugs sollten genügen um das hinzubekommen.
Vielen Dank für deine Idee Jens . Ich werd dies gleich mal versuchen. Gruß, Freedzz
Wenn du dann tatsächlich nur einzelne Bits prüfen möchtest gibt es da noch die Befehle BTFSS und BTFSC einfach im Datenblatt die Befehlsliste anschauen...
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.