16F887 - Känner ej av inputs.
16F887 - Känner ej av inputs.
Hej
Har ett problem med att känna av inputs, ex knapptryck. MCU är en 16F887 och jag har kört den i en egen krets för att försöka reda ut problemet. Men grejen är att input-portarna är konstant höga. Även om jag skriver bcf PORTA, x så är den hög. Men däremot fungerar alla portar jag sätter som outputs, de kan sättas låga eller höga utan problem.
Har kollat port initieringen, kollat MCLR, jordat LVP, matar korrekt med spänning till vdd och vss.
Börjar gå bet på problemet och undrar om någon haft samma problem eller har en lösning.
Tack
Har ett problem med att känna av inputs, ex knapptryck. MCU är en 16F887 och jag har kört den i en egen krets för att försöka reda ut problemet. Men grejen är att input-portarna är konstant höga. Även om jag skriver bcf PORTA, x så är den hög. Men däremot fungerar alla portar jag sätter som outputs, de kan sättas låga eller höga utan problem.
Har kollat port initieringen, kollat MCLR, jordat LVP, matar korrekt med spänning till vdd och vss.
Börjar gå bet på problemet och undrar om någon haft samma problem eller har en lösning.
Tack
Ok, kör med enklast möjliga kod från internet för att debugga.
Kod: Markera allt
;*** Disabling Periphals ***
bcf INTCON, 7 ; Disables Interrupts
bcf CM1CON0,7 ; Disables Comparator 1
bcf CM2CON0,7 ; Disables Comparator 2
bcf ADCON0,0 ; Disables AD convertor
bcf T1CON,0 ; Stops Timer1
bcf T2CON,2 ; Stops Timer2
clrf CCP1CON ; Disables Enhanced Capture,
clrf CCP2CON ; Disables Capture, Compare, PWM Module
bcf SSPCON,5 ; Disables MSSP module (I2C/SPI)
;*** Port Initialization ***
banksel PORTA
clrf PORTA
banksel TRISA
movlw b'11111111'
movwf TRISA
banksel PORTD ;
clrf PORTD ; Initialize PORTD
banksel TRISD ;
movlw B'00000000' ; Set as all output
movwf TRISD ;
banksel PORTD ; bank0
MAIN movlw b'11111111' ; släck alla LEDs, 2 st
movwf PORTD
btfss PORTA,0 ; Nedtryckt = clear, icke-nedtryck = set
bcf PORTD,7 ; Tänder LED.
goto MAIN
END
Startar upp pic:en med brytaren nedtryck, alltså ska väl bcf PORTD,7 köras och LED:en lysa för att sedan hoppa tillbaka till Main. Men grejen är att porten blir hög direkt man startar pic:en = brytaren inte nedtryckt. Sedan är det 5V ut från input-portarna oavsett brytarens läge eller om jag i programmet sätter clrf PORTA eller bcf PORTA,x
japp, koden går rätt i MP SIM och animate läge.
japp, koden går rätt i MP SIM och animate läge.
> alltså ska väl bcf PORTD,7 köras och LED:en lysa
Visst, men hur länge lyser den ??
OK, det borde kanske lysa svagt...
> om jag i programmet sätter clrf PORTA eller bcf PORTA,x
*Och* sätter TRISA till utgångar ?
Hur som helst, det saknas en del i din beskrivning av vad du har gjort, så
det är svårt att säga något mer. T.ex hur knappaen är kopplad...
Visst, men hur länge lyser den ??
OK, det borde kanske lysa svagt...
> om jag i programmet sätter clrf PORTA eller bcf PORTA,x
*Och* sätter TRISA till utgångar ?
Hur som helst, det saknas en del i din beskrivning av vad du har gjort, så
det är svårt att säga något mer. T.ex hur knappaen är kopplad...
Så du har en knapp kopplad mellan GND och I/O pinnen samt en
*KABEL* mellan *samma* I/O pinne och +5V !!!???
Alltså en *kortslutning* mellan 5V och I/O pinnen ???
Antingen har du beskrivet det dåligt eller så får du förklara tydligare
hur du har tänkt att *det* ska fugera...
> Vart ändrar jag porten?
T.ex när du gör : "clrf PORTA eller bcf PORTA,x "...
*KABEL* mellan *samma* I/O pinne och +5V !!!???
Alltså en *kortslutning* mellan 5V och I/O pinnen ???
Antingen har du beskrivet det dåligt eller så får du förklara tydligare
hur du har tänkt att *det* ska fugera...
> Vart ändrar jag porten?
T.ex när du gör : "clrf PORTA eller bcf PORTA,x "...
Vss på pic:en och jord. Jag börjar få kortslutning i huvudet.. Inte Vdd utan Vss. Annars hade jag nog bränt 7805 hehehesodjan skrev:Så du har en knapp kopplad mellan GND och I/O pinnen samt en
*KABEL* mellan *samma* I/O pinne och +5V !!!???
Alltså en *kortslutning* mellan 5V och I/O pinnen ???
Antingen har du beskrivet det dåligt eller så får du förklara tydligare
hur du har tänkt att *det* ska fugera...
> Vart ändrar jag porten?
T.ex när du gör : "clrf PORTA eller bcf PORTA,x "...
Hur ser en input pin ut om inget är kopplat till den. För som det är nu så är det 5V över alla PORTA pinnar.. utan att de ligger kopplade mot något. Och glöm det där med bcf PORTA, börjar blanda ihop grejer.
Du får nog rita ett schema och lägga bilden på t.ex. http://imageshack.us/
Set är svårt att förstå hur du kopplat baserat på det du skrivit.
Set är svårt att förstå hur du kopplat baserat på det du skrivit.