Hallo, ich möchte alle Ausgänge an PORTC eines 16F685 auf 1 schalten. Dazu habe ich folgendes Programm geschrieben:
Code:
#include <p16f685.inc>
__CONFIG _PWRTE_ON & _WDT_OFF & _LP_OSC
cblock 0x20
Test
endc
ORG 0x00
GOTO INITIALISIERUNG
ORG 0x04
GOTO ISR
ORG 0x05
INITIALISIERUNG
;internen 32khz Takt verwenden
banksel OSCCON
bcf OSCCON,IRCF0
bcf OSCCON,IRCF1
bcf OSCCON,IRCF2
BCF OSCCON, OSTS
BSF OSCCON, LTS
BSF OSCCON, SCS
;_______________________________
;PortC initialisieren
BCF STATUS,RP0
BCF STATUS, RP1
CLRF PORTC
BSF STATUS,RP1
CLRF ANSEL
BSF STATUS,RP0
BCF STATUS,RP1
CLRF TRISC
;----------------------portc initialisiert
banksel PORTC
; BSF PORTC,0
; BSF PORTC,1
; BSF PORTC,2
; BSF PORTC,3
; BSF PORTC,4
; BSF PORTC,5
; BSF PORTC,6
; BSF PORTC,7
MOVLW B'11111111'
MOVWF PORTC
schleife:
goto schleife
ISR
retfie
END
Das habe ich simuliert, jedoch wird statt "1111111" nur "00101111" ausgegeben. Wenn ich statt
MOVLW "B'1111111'
MOVWF PORTC"
8 mal BSF PORTC,0;7 schreibe steht am Ende in PORTC: "00111111".
Die Initalisierung von PORTC habe ich genau so geschrieben, wie sie im Datenblatt steht. Brauche ich noch eine zusätzliche Initialisierung, in der ich vielleicht einen Analogeingang oder so umschalten muss, damit es funktioniert? Leider habe ich dazu noch nichts gefunden.
Oder ist es gar nicht möglich bei diesem PIC alle Ausgang auf 1 zu schalten?
Ich bedanke mich schon im Voraus und wünsche allen ein frohes Weihnachtsfest!
Viele liebe Grüße,
n00b
Lesezeichen