Hallo,
ich bin noch ziemlicher Anfänger in der PIC Controller Programmierung.
Mein Projekt ist ein Lauflicht welches 12 LED's ansteuern soll, mit einem 16F628A.
Dabei klappt das Grundsätzlich schon sehr gut, nur der Port A ist etwas komisch.
Plan ist das Ansteuren der LED's sequentiell, ich meine also die LED's nacheinander einschalten und dann von vorn beginnend nacheinander wieder ausschalten.
Dabei verwende ich folgenden Code für PortA
Code:
CLRF PORTA
BANKSEL TRISA ; wählt PortA
MOVLW b'10110100' ;
MOVWF TRISA ; PORTA beschreiben
BANKSEL PORTA ; wechselt PortA
; LED's nacheinander einschalten mit RA0 beginnen
BSF PORTA,RA0 ; BSF S steht für Set setzt PortA0 auf 1 -> sonst BCF C steht für Clear würde den PortA auf 0 setzen
call _delay_2s ; ruft Wait Funktion auf, die Funktion ist unten definiert und wartet Dalay 1
BSF PORTA,RA1 ; setzt LED 2
call _delay_2s
BSF PORTA,RA3 ; setzt LED 3
call _delay_2s
BSF PORTA,RA6 ; setzt LED 4
call _delay_2s
Dabei werden die LED's aber nicht nacheinander ein sondern immer eine an dann die nächste an, dabei geht aber die vorherige aus?
Im Debugger zeigt der Code genau das gewünschte Verhalten, in der Realität aber leider nicht, hat jemand eine Idee?
Der Port B wird auf gleiche Weise angesteuert und klappt wunderbar.
Gruß Reiner
Lesezeichen