Forum: Mikrocontroller und Digitale Elektronik PIC16F886 Problem mit "BSF" Befehl


von Gerhard (Gast)


Lesenswert?

Hallo wer kann mir helfen?

Habe ein Programm in Assembler geschrieben, welches nicht so 
funktioniert wie ich möchte.

Konkret setze ich Bit6 am PORTB über:

BSF PORTB, 6

Dieser Pin geht dann auch, sowohl in der Simulation, wie auch in real 
einen Takt auf high und fällt dann wieder auf low zurück. Ist das 
normal? Das Bit müsste doch dauerhaft gesetzt sein.

Recht herzlichen Dank

von Sven W. (ulminpoika)


Lesenswert?

Sollte eigtl so bleiben wie er gesetzt wird.

Wie lauten denn die folgenden Zeilen? Und mit "Takt" meinst du echt 
einen Cycle oder einen Loop Durchlauf?

Grüßle

von Ottmar K. (wil1)


Lesenswert?

Hallo Gerhard,
hast Du schon ma in der Datei PIC16F886,INC nachgesehen ob der RB6 mit 
einem der verwendeten Config-words in Konflikt kommt" RB6 wird ja auch 
als Clock_In/Out-Pin verwendet.
mfg Ottmar

von Gerhard (Gast)


Lesenswert?

Hi Jungs,

danke für die Antworten!
Es liegt am PORTB. Wenn ich die Signale auf PORTC lege, funktioniert die 
Simulation so wie ich es mir überlegt habe.
Allerdings war es nicht der RB6 welcher nicht funktioniert hat sondern 
RB2. Dieser hat eigentlich keine Sonderfunktion.
RB6 wird jedoch auch als ICSPCLK (Programmierclock) verwendet. Den 
sollte man dann nicht unbedingt verwenden, da hast du Recht Ottmar.
Grüße Gerhard

von Michael S. (rbs_phoenix)


Lesenswert?

Das gesamte Programm wäre mal interessant, vielleicht ist da ein 
Denkfehler drin.

Ansonsten.. Reset-Pin aus/beschaltet?

von Peter D. (peda)


Lesenswert?

Gerhard schrieb:
> Dieser Pin geht dann auch, sowohl in der Simulation, wie auch in real
> einen Takt auf high und fällt dann wieder auf low zurück.

BSF LATB, 6

sollte das Problem lösen
Die Erklärung steht auf der Sprut-Webseite (PIC-Fallgruben).


Peter

von tt2t (Gast)


Lesenswert?

> BSF LATB, 6

Der PIC16F886 hat keine LAT-Register, nur PORT.

von Peter D. (peda)


Lesenswert?

tt2t schrieb:
> Der PIC16F886 hat keine LAT-Register, nur PORT.

Dann muß ein NOP zwischen 2 Portbefehle.

Peter

von Michael S. (rbs_phoenix)


Lesenswert?

Peter Dannegger schrieb:
> Dann muß ein NOP zwischen 2 Portbefehle.

Deswegen fragte ich nach dem Programm. Vielleicht ist da aber kein 
zweiter Portbefehl

von tt2t (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.