leds sollen leuchten

#832591
Lesenswert?

hallo alle zusammen,

ich habe mal wieder eine frage. ich habe wie gesagt erst vor kurzem 
angefangen mit pics zu programmieren und teste jetzt ein bißchen herum.

MAIN
    BTFSC  PORTA,SW1
    GOTO  leuchten
    GOTO  MAIN

leuchten
    MOVLW  B'00111111'
    MOVWF  PORTB
    RETURN


    END

so sieht mein programm bis jetzt aus. die leds sollen einfach leuchten, 
wenn ich einmal auf den taster drücke. sie gehen aber immer aus, wenn 
den taster wieder loslasse. kann mir jemand erklären wieso?
danke schon mal

gruß paul
Gast #832671
Lesenswert?

benutz einen Simulator/Debugger dann siehst und lernst du es
Bit für Bit,Schritt für Schritt.
Scheint so als wenn die Ausgangslatch die Bit-Information nicht 
speichern.
Vielleicht ist dafür ein anderer Mov-Befahl nötig?
Hab da leider keine Erfahrung mit,würde aber mal in diese Richtung 
forschen.
Ohne Latch würden dann die Bits wieder gelöscht wenn durch den 
Mov-Befahl keine Ausgabe erfolgt.Übrigens werden die Led`s wohl gepulst 
wenn man die
Taste gedrückt läßt.
Eigentlich müßte es so gehen,verstehe leider auch nicht wieso.
Ist eben nur ein Schuß ins Blaue.
Poste mal wenn du das Problem gelöst hast oder nicht.

Lötkünstler

<Mit der Lizenz zum löten>
Gast #832703
Lesenswert?

Irgendwie fehlt da noch das setzen vom TRISB Register.
Der PIC schaltet die Pins nicht von alleine auf
Ausgänge um.

Dein geposteter Code ist also SCHWACHSINN oder einfach nicht
komplett. Die LEDs können so auf keinen Fall leuchten.

Das ist nicht der Code den du verwendet hast.

Und merke: Kein RETURN ohne CALL. Kein CALL ohne RETURN..
Gast #832710
Lesenswert?

MAIN
    BTFSC  PORTA,SW1
    call  leuchten
    GOTO  MAIN

leuchten
    MOVLW  B'00111111'
    MOVWF  PORTB
    RETURN


    END

Ich hab noch mal in meine Bücher geschaut.
Goto ist ein unbedingter Sprung (ohne Rückkehr)
Call ist ein Unterprogrammaufruf (mit Rückkehr(Return))
Kann es sein das der Port nicht auf Ausgang initialisiert ist?
(Macht man mit dem Tris-Befehl)
Ich glaube ,wenn der Port als Eingang programmiert ist wird ein
Schreiben in das Ausgangsregister nicht gelatcht und daher gehen
die Led`s wohl wieder aus.

Ohne Debugging/Simulation käme ich allerdings auch nicht weiter.

Lötkünstler
<mit der Lizenz zum löten>

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren