16F887 - Känner ej av inputs.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

16F887 - Känner ej av inputs.

Inlägg av opatagio »

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
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Kopplat bort analoga funktioner ?

Posta kortast möjliga "test-case" som visar fenomet.
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Inlägg av opatagio »

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
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK.
Går koden "rätt" när den simuleras (i MPSIM) ?
Om det gör det, så är det sannolikt något med din uppkoppling...

Sen vore det bra om du förklarar vad du förväntar dig att koden ska göra.

> Men grejen är att input-portarna är konstant höga...

Hur vet du det ?
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Inlägg av opatagio »

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.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> 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...
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Inlägg av opatagio »

banksel TRISA
movlw b'11111111'
movwf TRISA

det sätter väl PORTA till ingångar?


knappen är kopplad GND -> brytare -> PORTA,x och en till +5V
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> det sätter väl PORTA till ingångar?

Jo, men skulle du inte "testa" porten som utgång ?
Varför ska du annars ändra PORTA ?

> knappen är kopplad GND -> brytare -> PORTA,x och en till +5V

Jaha, och vad är "en" ??????
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Inlägg av opatagio »

>Jo, men skulle du inte "testa" porten som utgång ?
>Varför ska du annars ändra PORTA ?

skulle jag? Vart ändrar jag porten? jag börjar tro jag fortfarande är lite insnöad i php mentaliteten.

> Jaha, och vad är "en" ??????

en kabel... glömde kabel.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

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 "...
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Inlägg av opatagio »

sodjan 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 "...
Vss på pic:en och jord. Jag börjar få kortslutning i huvudet.. Inte Vdd utan Vss. Annars hade jag nog bränt 7805 hehehe

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.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

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.
Användarvisningsbild
Zyxel615
EF Sponsor
Inlägg: 1839
Blev medlem: 9 november 2005, 21:20:43
Ort: Kiruna

Inlägg av Zyxel615 »

sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Hur ser en input pin ut om inget är kopplat till den.

Om den är input så kan den ha i princip vilket "värde" som helst.

Ha *aldrig* ingångar oanslutna !!!
En grundregel...

I normala fall plockar de upp 50Hz "brum" från rummet...

Sen är jag inte med på hur "kabeln" är inkopplad...
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

Vad har du för oscillator ?
Watchdog timer ?

Vad har du för config inställningar ?
Skriv svar