Es funktioniert jetzt.
Code:
Code:
list p=16f870
#include <P16f870.INC>
__config _LVP_OFF & _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _CPD_OFF & _BODEN_OFF & _DEBUG_OFF
;Programmablauf: Wenn kein PIN an Port A high ist, dann alle LEDs einschalten. Wenn ein PIN an Port A high ist, dann das entsprechende LED einschalten
ORG 0x00
NOP ;manche pics machen da irgendwie zicken, deswegen kommt da immer ein nop rein.
goto Init
ORG 0x04 ;ein interrupt?
retfie ;dann zurück!
Init
bsf STATUS, RP0 ; auf Bank 1 umschalten
bcf STATUS, RP1 ; auf Bank 1 umschalten
MOVLW 0x06 ;
MOVWF ADCON1 ;macht den ad-wandler aus, d.h. alle ein/ausgänge ist digital
movlw B'11111111' ;ich habs so gemacht, weil das für mich im Moment noch übersichtlicher und klarer ist
movwf TRISA
movlw B'00000000'
movwf TRISA
bcf STATUS, RP0 ; auf Bank 0 umschalten
clrf PORTA
clrf PORTB
schleife
movfw PORTA ;der Inhalt von PORTA wird in W geschoben
movwf PORTB
goto schleife
end
Nur: Ohne Schleife reagiert der PIC ziemlich langsam auf die Eingange. Ich weiß zwar nicht warum, aber mit Schleife gehts jetzt super.
Danke nochmal
mfG. Michael
Lesezeichen