2 PIC Befehle mit welchen ich nix anfangen kann ... hmmm

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 13 7 2026  08:39:55      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : 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
ICQ Status  
 

  


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
Zur Homepage von QuirinO ICQ Status  

 

  

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
ICQ Status  


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
ICQ Status  


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 !!


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


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