Sida 6 av 7

Re: Behöver hjälp med min kod!

Postat: 26 augusti 2009, 22:56:05
av Lonius
E85:
Bra länk :tumupp:

Crille93:
Kan du inte ta kort på båda sidorna på kortet?
Jag tycker att det verkar mkt underligt,
att lysdioder ska lysa olika om dom kopplas lika.
Vad har du för volt in till kortet, kanske har frågats redan
men en då?

EDIT Fråga till? vad gör att du kopplar batteri eller annan spännings källa
till den delen och inte dit där det står GND och +V???

Vilka lysdioder lyser svagt? den du satt dit eller dom 4 röda?

//Roger

Re: Behöver hjälp med min kod!

Postat: 27 augusti 2009, 15:00:00
av Crille93
> Vilka lysdioder lyser svagt?
Dom 4 som redan sitter på kortet lyser svagare nu när jag har satt alla utgångar på hög. Sedan så lyser den gröna lysdioden hyffsat på några (3-5pinnar) medans på alla andra så lyser den svagare.

> Vad har du för volt in till kortet
Jag testade med 3V senast.

> vad gör att du kopplar batteri eller annan spännings källa
till den delen och inte dit där det står GND och +V???

Jag satte sladdarna så nära pinnarna det går. Så att det inte skulle bli något konstigt med det. Men jag kan testa att sätta sladdarna där också :roll:

Re: Behöver hjälp med min kod!

Postat: 27 augusti 2009, 17:57:43
av sodjan
Är du 100% säker på att detta experimentkort är designat för att köras på 3V ???
Eftersom det är tänkt att köras tillsammans med PICkit2 så är jag ganska
säker på att det är tänkt att köras med 5V. Det är för övrigt lite svårt
att fatta varför du strular till det genom att *inte* köra med 5V...

Jag tycker du ska backa några steg och göra allt rätt från början.

Re: Behöver hjälp med min kod!

Postat: 27 augusti 2009, 18:08:36
av E85
Här är manualen: http://ww1.microchip.com/downloads/en/D ... 51556a.pdf
Den ska du nog läsa om du inte gjort det. Och som sagt 3V är inte bra i ditt fall. Kör på USB'n.

Re: Behöver hjälp med min kod!

Postat: 27 augusti 2009, 18:24:33
av Crille93
:? Nu förstår jag ingenting.......

Jag kunde inte använda USB'n på min laptop för att den inte ger ut tillräckligt. Som märktes eftersom nu när jag kör på 3V batteriet så fungerar alla pinnarna, några fungerar bra, och de andra sådär. Medans om jag kör på laptopen så fungerar några sådär och de andra näst intill inte alls.

> Det är för övrigt lite svårt
att fatta varför du strular till det genom att *inte* köra med 5V...

Jag har inte så jag kan koppla ihop batterier/har ett batteri på 5V och laptopen klarar inte av det.

Men jag ska köpa en sån här kopplingsplatta:
http://www.kjell.com/?item=36251&path=2 ... ,303000000

Som jag kan sätta processorn på istället när jag testar.

Re: Behöver hjälp med min kod!

Postat: 27 augusti 2009, 18:44:02
av sodjan
> Jag kunde inte använda USB'n på min laptop för att den inte ger ut tillräckligt.

Vad är det som den inte "ger ut" tillräckligt av ? Spänningen borde inte vara
något problem. Ström ? Var inte det när du körde lysdioderna *utan* motstånd ??

> Som märktes eftersom nu när jag kör på 3V batteriet så fungerar alla pinnarna, några fungerar bra, och de andra sådär.

Om det ska vara någon mening med att du försöker beskriva ett problem så behövs den en
tydlig beskrivning av vad problemet är samt en test-kod som uppvisar problemet när den körs.
Samt att allt är korrekt inkopplat så klart, det har det ju inte varit tidigare...
Och du måste säga *vilken* pinne som fungerar på den ena eller det andra sättet, inte bara att
"några" fungerar på ett sätt och "de andra" på något annat sätt.

Dessutom är sannolikt kortet designat för 5V och det är inte alls självklart att
det fungerar helt OK på 3V.

Digitala pinnar fungerar normalt aldrig varken "sådär" eller "näst intill inte alls".
Digitalt är digitalt, antingen fungerar det eller så fungerar det inte.

Hur löses kopplingsplattan problemet med 5V'en ? Eller ska du skaffa en 5V nätdel
när du ändå är hos Kjell&Co ?

Du har ju tidigare kört både utan och med 10 ohms motstånd (sannolikt får lågt)
till dina LEDs och innan du har klargjort att du har fixat det så är det mesta annat
lite ointressant.

Du har även tidigare visat att du inte förstår hur man ansluten en vanlig multimeter
för strömmätning. Det är inte heller klargjort att du har kollat upp det. Med sådana
misstag tidigare så är det ju lite svårt att läsa mellan raderna och anta att du förstår
sådant som du utelämnar.

Som jag sa tidigare, backa tillbaka till starten och gör allt rätt så får vi se hur det går... :-)

Re: Behöver hjälp med min kod!

Postat: 28 augusti 2009, 17:35:16
av Crille93
> Samt att allt är korrekt inkopplat så klart, det har det ju inte varit tidigare...
Jag har bild på hur jag har kopplat
Bild

> Hur löses kopplingsplattan problemet med 5V'en ? Eller ska du skaffa en 5V nätdel
när du ändå är hos Kjell&Co ?

Man tar processorn och sätter den på plattan så finns endast processorn och lysdioden, inget annat. För vad jag vet så fungerar en processor mellan 3-5,5V men det kanske inte stämmer längre? :wink:

Men om jag gör såhär:
Jag tar min röda lysdiod på 2V och sätter en 150 ohm resistor och kopplar allt till USB porten (5V). Så kan jag ta bilder på hur jag har kopplat och så kan jag rita upp i paint eller liknande hur jag har kopplat också. Sedan så skriver jag ner vilka portar som inte fungerar (om det blir likadant som förut).

Re: Behöver hjälp med min kod!

Postat: 28 augusti 2009, 17:42:53
av E85
Det är lite oklart ifall du fått de fyra lysdioderna på kortet att lysa som du vill. Börja med att få de lysa/blinka osv och sen går du vidare. Det finns exempelkod och förklaringar i dokumentet jag länkade till i förra inlägget.

Re: Behöver hjälp med min kod!

Postat: 28 augusti 2009, 18:46:20
av Crille93
> Det är lite oklart ifall du fått de fyra lysdioderna på kortet att lysa som du vill. Börja med att få de lysa/blinka osv och sen går du vidare. Det finns exempelkod och förklaringar i dokumentet jag länkade till i förra inlägget.

Jag har fått dom att lysa som jag vill men endast 1 i taget.

Men nu har jag tagit lite bilder!
Jag har tagit en 2V lysdiod och satt dit en 150 ohms resistor. Detta drivs via USB porten.

*Alla pinnar är utgångar som är satta hög på bilderna*

Nu är lysdioden kopplad till pinne RA5 och lyser som den ska.
Bild


Nu är lysdioden kopplad till pinne RA4 och lyser inte som den ska. Likadant blir det om lysdioden kopplas till:
RA0, RA1, RA2, RA4, RB4, RB5, RC6
Bild


Alla pinnar är utgångar som är satta hög men det är endast de här 4 som är inkopplade
(jag har försökt, men det gick inte att få en bra bild för jag var tvungen att ta bild nära så att man såg att dom lös, men kolla på hur mycket vitt det är i dom så ser man hur mycket dom lyser i förhållande till dom andra bilderna som kommer)
Bild


Endast pinnarna RC0, RC1, RC2, RC3 är utgångar och satta hög.
Bild


Endast pinnen RC0 är utgång och satt hög.
Bild

Hoppas det är all information som behövs :roll:

Re: Behöver hjälp med min kod!

Postat: 28 augusti 2009, 21:21:12
av sodjan
> Hoppas det är all information som behövs

Nej, koden saknas. (Har vi inte tjatat om det tidigare ?)

Det räcker **INTE** med att du säger att du sätter det ena och det andra si eller så,
du måste även *visa* att du faktiskt gör det. Det kan mycket väl vara att du bara *tror*
att du gör det som du skriver att du gör...

> Jag har tagit en 2V lysdiod och satt dit en 150 ohms resistor. Detta drivs via USB porten.

Hur menar du ? *Vad* är det som drivs från USB porten ? Hela labbkortet ? Enbart lysdioden ?
Och *hur* är lysdioden kopplad ?? Vilken ände (katod/anod) till vad ? Var sitter motståndet ?
Är lysdioden kopplad till 5V eller GND ? Hoppas att det framgår att du måste se till att skriva tydliga
beskrivningar annars blir det enbart en massa motfrågor som tar extra tid och kraft från alla...

Jag är ganska övertygad om att det är något skit-fel i botten, och det kommer
sannolikt fram bara du beskriver vad du gör och visar hur koden ser ut.

Re: Behöver hjälp med min kod!

Postat: 28 augusti 2009, 21:49:56
av Crille93
> Nej, koden saknas. (Har vi inte tjatat om det tidigare ?)
Det är 2:a eller 3:e gången den skrivs :roll: Men här är den igen:

Kod: Markera allt

#include <p16F690.inc>
     __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
    cblock 0x20
Delay1                   ; Define two file registers for the
Delay2                   ; delay loop
     endc
     org 0
Start:
     bsf     STATUS,RP0       ; select Register Page 1
     clrf    TRISC          ; make IO Pin C0 an output
     clrf    TRISB
     clrf    TRISA
     bcf     STATUS,RP0       ; back to Register Page 0

;START__________________________________________________
Beginning:
;LED1___________________________________________________
LED1
;RA_____________________________________________________
     bsf     PORTA,0
     bsf     PORTA,1
     bsf     PORTA,2
     bsf     PORTA,4
     bsf     PORTA,5
;RB_____________________________________________________
     bsf     PORTB,4
     bsf     PORTB,5
     bsf     PORTB,6
     bsf     PORTB,7
;RC_____________________________________________________
     bsf     PORTC,0
     bsf     PORTC,1
     bsf     PORTC,2
     bsf     PORTC,3
     bsf     PORTC,4
     bsf     PORTC,5
     bsf     PORTC,6
     bsf     PORTC,7

;LED2___________________________________________________
goto Beginning
     end
> *Vad* är det som drivs från USB porten
Hela kortet.

> *hur* är lysdioden kopplad ??
Katod till jord
Anod till resistor

> Var sitter motståndet ?
Kolla bilderna :eek2:

Re: Behöver hjälp med min kod!

Postat: 29 augusti 2009, 00:32:22
av sodjan
OK.
Först bara en liten detalj...

Normalt kopplar man pinne -> motstånd -> LED-katod -> LED-anod -> Vdd (t.ex 5V).
Anledningen är bl.a att CMOS kretsar har lättare att "sänka" ström till jord än att "source'a"
ström från Vdd. Det blir även mindre switch-störningar när man switchar jord genom
processorn än Vdd, men det har nog ingen betydelse i detta fall. Som sagt bara en
detalj och det har sannolikt inte med det aktuella problemet att göra.

D.v.s att man normalt tänder en LED med en låg/nolla/0 på aktuell pinne.

OK, där har vi koden och det är ju direkt uppenbart att du har slarvat med att RTFM.

Det finns för varje port minst en hel sida, har du verkligen läst **ALLT** som står där
och sett till att du har gjort **ALLT** som beskrivs där för initiering av portarna ??

Kolla i "TABLE 5: PIC16F690 PIN SUMMARY" på sidan 6 i databladet.
Jämför vad som skiljer RA5 (som ju "fungerar") med alla de andra pinnarna
som du räknar upp. Alltså RA4, RA0, RA1, RA2, RA4, RB4, RB5, RC6.
Ser du någon skillnad ? Speciellt i kollumnen "Analog" ?? Kolla sedan
igen i kapitlet om portarna, speciellt de små grå rutorna med "Note:", det
betyder att det som står där är speciellt viktigt !

Att förklara exakt vad som händer i din kod låter som lite överkurs just nu, men det
är ganska uppenbart i alla fall. Men med hjälp av följande delar av t.ex PORTA
kapitlet så går det att räkna ut :

" All write operations are read-modify-write operations. Therefore, a write to a port implies that
the port pins are read, this value is modified and then written to the PORT data latch."

" I/O pins configured as analog input always read ‘0’."

Fundera nu på vad som händer när du först sätter t.ex RA0 = "1" och sedan i samma kod
direkt sätter en annan RA-pinne. Vad händer då med RA0 ??? *DET* är svaret på vad som
händer i din kod.

Alltså, i stort sätt mest slarv med RTFM.
Slå bara av alla analoga funktioner så fungerar det sannolikt exakt så som du vill...

Re: Behöver hjälp med min kod!

Postat: 29 augusti 2009, 00:39:41
av E85
Det skrev jag på sidan 4 så jag antog att han kollat upp det... jaja så kan det gå.

Re: Behöver hjälp med min kod!

Postat: 29 augusti 2009, 10:09:54
av Crille93
E85: Jag ber så mycket om ursäkt! Jag måste ha missat ditt inlägg :oops:

Sodjan:
> Normalt kopplar man pinne -> motstånd -> LED-katod -> LED-anod -> Vdd (t.ex 5V).
Så du menar att man ska göra alla pinnar till input istället?

Men jag läste lite om det där och fick ett klart mycket bättre resultat! Nu fungerar alla portar som dom ska förutom RB4, RB5 och RC6. Såhär ser den nya koden ut:

Kod: Markera allt

#include <p16F690.inc>
     __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
    cblock 0x20
Delay1                   ; Define two file registers for the
Delay2                   ; delay loop
     endc
     org 0
Start:
     bcf STATUS,RP0           ;Bank 0
     bcf STATUS,RP1
     clrf PORTA               ;Init PORTA
     bsf STATUS,RP1           ;Bank 2
     clrf ANSEL               ;digital I/O
     bsf STATUS,RP0           ;Bank 1
     bcf STATUS,RP1
     movlw 00010000           ;Gör RA3 input
     movwf TRISA 
     clrf PORTB
     clrf PORTC
     bcf STATUS,RP0           ;Bank 0


;START__________________________________________________
Borjan
;LED1___________________________________________________
LED1
;RA_____________________________________________________
     bsf     PORTA,0
     bsf     PORTA,1
     bsf     PORTA,2
     bsf     PORTA,4
     bsf     PORTA,5
;RB_____________________________________________________
     bsf     PORTB,4
     bsf     PORTB,5
     bsf     PORTB,6
     bsf     PORTB,7
;RC_____________________________________________________
     bsf     PORTC,0          ; turn on LED C0 (DS1)
     bsf     PORTC,1
     bsf     PORTC,2
     bsf     PORTC,3
     bsf     PORTC,4
     bsf     PORTC,5
     bsf     PORTC,6
     bsf     PORTC,7

;LED2___________________________________________________
goto Borjan
     end
Bild på hur mycket RB4, RB5 och RC6 "lyser" jämfört med dom andra pinnarna:
Så mycket "lyser" RB4, RB5, RC6
Bild

Så mycket "lyser" dom andra pinnarna
Bild

Re: Behöver hjälp med min kod!

Postat: 29 augusti 2009, 10:55:54
av E85
Du har glömt ANSELH.
Så du menar att man ska göra alla pinnar till input istället?
Nej, han menar att du kan vända på lysdioden och koppla den till 5V. Då kommer det att gå ström genom den när dina pinnar är låga eftersom det blir en potential på 5V mellan LED-anoden och din pinne. När pinnen är hög(5V) blir det 5V på båda sidor så då flyter ingen ström.