2 PIC Befehle mit welchen ich nix anfangen kann ... hmmm Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
| Autor |
2 PIC Befehle mit welchen ich nix anfangen kann ... hmmm Suche nach: pic (2060) |
|
|
|
|
BID = 50482
Muuu Gelegenheitsposter
  Beiträge: 74 Wohnort: Kärnten
|
|
Grüß euch ..
Also ich beschäftige mich grad ein bissl mit den PIC und bin dabei verschiedene Dinge auszuprobieren.
Smuts Pic Seite hilft ma da zwar ein bissl weiter, aber auch net ganz.
Und zwar: Ich hab in meinem Programmteil das SetUpDevice
Da steht folgendes drin:
clrf PORTB
bsf STATUS, RP0
movlw b'00000000'
movwf TRISB
bcf STATUS, RP0
clrf PORTA
bsf PORTA, RP0
movlw b'00000001'
movwf TRISA
bcf STATUS, RP0
So .. also ich check das ja zum grossteil - aber halt net ganz. Ich kann mit den Befehlen "bsf" und "bsf" nix anfangen !!
Ich weiss zwar das "bsf" zb. bit set file bedeutet, aber dennoch .. ich frag mich wie das alles zusammenhängt !!
Könnte mir da ev. einer helfen bzw. nen Tipp gibt ?
Danke schonmal im voraus !!
Ich versteh im großen und ganzen ja alles, nur den unterschied zwischen bit set file und bit clear file |
|
BID = 50483
QuirinO Schreibmaschine
    
Beiträge: 2205 Wohnort: Behringersdorf
|
|
Hallo... hab bei Sprut.de folgendes zu diesem Befehl gefunden:
BSF Ein Bit (das Bit Nr. b) in einer Speicherzelle f setzen
Syntax: BSF f,b
Bedeutung: In der Speicherzelle f wird das Bit b auf 1 gesetzt
Beispiel: BSF PORTA,3 ; Im Register PORTA wird das Bit Nr.3 auf 1 gesetzt
; (das dritt"kleinste" Bit mit dem Wert 4).
; War PORTA vorher Null, so ist jetzt PORTA=4.
BCF Ein Bit (das Bit Nr. b) in einer Speicherzelle f löschen
Syntax: BCF f,b
Bedeutung: In der Speicherzelle f wird das Bit b auf 0 gesetzt
Beispiel: BCF PORTA,3 ; Im Register PORTA wird das Bit Nr.3 auf 0 gesetzt
; (das dritt"kleinste" Bit mit dem Wert 4).
; Was PORTA vorher 6, so ist jetzt PORTA=2.
Kleiner auszug aus Spruts homepage...
In dem fall deines programmes wird bas bit0 im Statusregister gesetzt...
dies bewirkt bei der indirekten Adressierung, die der pic benutzt ein umschalten von Speicherbank 1 auf Speicherbank 2... das Register TrisB befindetsich nämlich in Speicherbank 2...
mit BCF Status,Rp0 wird wieder auf Speicherbank 1 umgeschaltet... dort befindet sich nämlich das Register PortA, auf das als nächstes zugegriffen wird...
statt Bsf,Rp0
könntest du hier auch schreiben
movlw "00000001"
movwf STATUS
das BSF ist in diesem falle einfach kürzer und einfacher zum anwenden...
Falls ich mich hier vertue, werde ich gerne berichtigt...
MFG Quirin
|
|
BID = 50491
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
RP0 und RP1 sind die Register Page select bits, die im statusregister wohnen.
mit "bsf rp0,status" schaltet er auf die Page1 um, um an das TRIS Register zu kommen. Dort schreibt er eine 0 rein, wodurch alle entsprechenden Pins des PortB zu Outputs werden.
Anschließend "mit bcf rp0,status", wird wieder die bank 0 eingeschaltet und dann setzt er die Ausgänge Low.
Im zweiten Teil passiert das gleiche für Port A, nur daß er dort Bit 0 als Eingang definiert, und die Outputs schon früher auf 0 gesetzt hat.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
[ Diese Nachricht wurde geändert von: perl am 23 Jan 2004 11:01 ]
|
BID = 50519
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| statt Bsf,Rp0
könntest du hier auch schreiben
movlw "00000001"
movwf STATUS
das BSF ist in diesem falle einfach kürzer und einfacher zum anwenden...
Falls ich mich hier vertue, werde ich gerne berichtigt...
|
Ja, was Du da schreibst, ist leider falsch.
Die Bits RP0 und RP1 befinden sich nicht in den Bitpositionen 0 und 1 im Statusregister, sondern in 5 und 6 !
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 50527
Muuu Gelegenheitsposter
  Beiträge: 74 Wohnort: Kärnten
|
Zitat :
|
Beispiel: BSF PORTA,3 ; Im Register PORTA wird das Bit Nr.3 auf 1 gesetzt
; (das dritt"kleinste" Bit mit dem Wert 4).
; War PORTA vorher Null, so ist jetzt PORTA=4.
|
Also das check ich net so ganz .. wie ist das gemeint mit dem "dritt kleinsten" Bit .. und das dann PortA=4 ist ?
Der Rest leuchtet mir aber nun an, vielen dank an euch beiden. Ich werd das gleich mal ausprobieren obs nun so hinhaut wie ich will wenn ichs ein bissl verändern will !!
Danke !!
|
BID = 50542
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
Vergiß es. Das ist schlecht ausgedrückt und außerdem falsch.
Nach allgemeiner Konvention werden die Bits von rechts nach links mit 0, 1, 2... usw. bezeichnet.
Bit3 ist das vierte Bit und hat den Wert 8 .
So würde auch der Assembler den Beispielscode "BCF PORTA,3" verstehen.
Und wenn das Register vorher den Wert 6 hatte, dann hat es den nach diesem Befehl immer noch, denn es waren nur Bits 1 und 2 auf "1".
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 51027
Muuu Gelegenheitsposter
  Beiträge: 74 Wohnort: Kärnten
|
Zitat :
perl hat am 23 Jan 2004 11:11 geschrieben :
|
Vergiß es. Das ist schlecht ausgedrückt und außerdem falsch.
Nach allgemeiner Konvention werden die Bits von rechts nach links mit 0, 1, 2... usw. bezeichnet.
Bit3 ist das vierte Bit und hat den Wert 8 .
So würde auch der Assembler den Beispielscode "BCF PORTA,3" verstehen.
Und wenn das Register vorher den Wert 6 hatte, dann hat es den nach diesem Befehl immer noch, denn es waren nur Bits 1 und 2 auf "1".
|
Oh danke, versteh ich wohl was du meinst !!
Übrigens hab ich Freitag und Samstag ein bissl rumprobiert mit diesen Befehlen und jetzt ist mir auch klar wie das ganze klappt und was es bewirkt !!
Danke für eure Hilfe !! 
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 7 Beiträge im Durchschnitt pro Tag heute wurden bisher 0 Beiträge verfasst © x sparkkelsputz Besucher : 192376216 Heute : 1223 Gestern : 4879 Online : 87 13.7.2026 8:39 5 Besucher in den letzten 60 Sekunden alle 12.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0441138744354
|