Behöver hjälp med min kod!

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
E85
Inlägg: 1274
Blev medlem: 29 maj 2007, 16:24:19
Ort: Övik

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

Inlägg av E85 »

"Sedan så sätter jag lysdiodens katod på "GND" och lysdiodens anod på alla I/O (förutom RA3 som är input), en i taget"

Det bör sitta ett motstånd i serie med lysdioden för att begränsa strömmen.


"...så kan man precis se att det lyser svagt om tråden i lysdioden."

Lysdioder har ingen glödtråd, http://sv.wikipedia.org/wiki/Lysdiod
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

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

Inlägg av sodjan »

> Det databladet jag länkade till är ett som någon annan på det här forumet har länkat till.

Strunt i det, kör alltid med det senaste. Kanske att det just i detta fall inte
spelar så stor roll, men i alla fall...

> Sedan så sätter jag lysdiodens katod på "GND" och lysdiodens anod på alla I/O

Gör **ALDRIG** det ! Koppla aldrig in lysdioder utan strömbegränsningsmotstånd.
Du behöver läsa på lite om lysdioder... :-)
T.ex : http://www.elektronikforumet.com/wiki/i ... le=Lysdiod

Hur fungerar koden när du simulerar den i MPLAB/SIM ?
Crille93
Inlägg: 96
Blev medlem: 2 maj 2009, 19:40:12

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

Inlägg av Crille93 »

Jag vet att man inte ska göra så för att lysdioden men jag verkar göra något fel i koden eftersom bara vissa I/O klarar av att ge ut tillräckligt och man kan ju inte se om den öppnar portar i MPLAB/SIM.
Kan det vara att PIC processorn inte klarar av att ge ut tillräckligt när man öppnar alla utgångar? Så man måste använda transistorer istället? Eller ska processorn klara av att tända 17st lysdioder samtidigt, 1 på varje I/O?
Användarvisningsbild
E85
Inlägg: 1274
Blev medlem: 29 maj 2007, 16:24:19
Ort: Övik

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

Inlägg av E85 »

Du sa ju att du bara kopplar in en åt gången så då är det inget problem. Det går ingen ström om det inte är nåt kopplat till pinnen.
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

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

Inlägg av bos »

Du skriver ofta att du "öppnar" porten. Det är väldigt förvirrande, för det är ingen vedertagen jargong.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

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

Inlägg av sodjan »

> Jag vet att man inte ska göra så...

Vad du gör hemma i din kammare skiter jag fullständigt i.
Men ge FAN i att göra så där med lysdioder om du vill ha hjälp *här*...

> Eller ska processorn klara av att tända 17st lysdioder samtidigt,

Det är väl helt ointressant i sammanhanget eftersom du dels bara använder
*EN* lysdiod och dessutom inte fattar hur en lysdiod ska kopplas in... :roll:

(Svaret på din fråga finns i "Electrical Specifications" längst bak i databladet.)

Du behöver en mer seriös inställning till det hela om du någonsin ska
få något med PIC att fungera.
Användarvisningsbild
E85
Inlägg: 1274
Blev medlem: 29 maj 2007, 16:24:19
Ort: Övik

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

Inlägg av E85 »

Jag tycker du är lite hård sodjan. Om nu Crille är 93:a så är han alltså 16 år och har inte ens börjat gymnasiet ännu. Då är det inte lätt att ha koll på allt. Detsamma gäller om Crille är 93 år. :lol:

Angående att "öppna portar" så är det bättre att säga att man sätter en pinne hög eller låg.
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

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

Inlägg av bos »

E85 skrev:Angående att "öppna portar" så är det bättre att säga att man sätter en pinne hög eller låg.
Helt klart. Om man nu tänker "port" som i "garageport" eller liknande (som jag antar författaren gör) så är det ändå oklart vad som händer om man "öppnar" den - man kan ju både gå in och ut.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

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

Inlägg av sodjan »

> Jag tycker du är lite hård sodjan.

Jo, du har helt rätt. Jag ber om ursäkt ! Var lite stressad...

> Angående att "öppna portar" så är det bättre att säga att man sätter en pinne hög eller låg.

Jag *tror* att han med "öppna" menar "göra till utgång". Men det är bara
en tolkning av tidigare inlägg... :-)
Crille93
Inlägg: 96
Blev medlem: 2 maj 2009, 19:40:12

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

Inlägg av Crille93 »

Så att sätta en pinne hög så gör man den till en utgång som skickar ut ström medans att sätta en pinne låg så gör man så utgången blir 0?

Men angående lysdioderna så fungerar inte ens lysdioderna som sitter på experimentkortet från början när jag sätter alla pinnar hög :? .

Men jag kan inte ha sönder processorn om jag sätter alla pinnar hög? För just nu så vågar jag inte fortsätta ifall det kan vara farligt för processorn. Jag menar om jag skulle koppla dit en lysdiod på alla pinnar (på rätt sätt förstås!)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

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

Inlägg av sodjan »

> Så att sätta en pinne hög så gör man den till en utgång som skickar ut ström medans att sätta en pinne låg så gör man så utgången blir 0?

Nja... :-)

Först bestämmer du dig för om en pinne ska vara *IN* eller *UT* -gång.
Det gör du via TRISx registren. Det har ingenting med hög/låg att göra,
enbart vilken riktning (d.v.s in eller ut) som den aktuella pinnen ska ha.

*Sedan*, om du har konfigurert en pinne som utgång, så sätter du den "hög"
eller "låg" via PORTx registret. Det anger bara vilken nivå som pinnen kommer att ha.

Om det sedan går någon ström in till eller ut från pinnen är ytterligare en helt annan sak,
det beror helt på vad pinnen är kopplad till och har inte direkt med ovanstående att göra.

> Men angående lysdioderna så fungerar inte ens lysdioderna som sitter på experimentkortet från början när jag sätter alla pinnar hög

Vilka lysdioder och vilket experimentkort ? Har du en PICkit2 ?
Jag är säker på att de exempel som finns i dokumentationen fungerar.

> Men jag kan inte ha sönder processorn om jag sätter alla pinnar hög?

Absolut *inte*. Om du riskerar att skada processorn beror helt på vad du koppar in.
Och gränserna finns angiva i "Electrical Specifications" i databladet. Men några lysdioder
är inget problem, du behöver ju inte speciellt mycket ström för att de ska synas, några
enstaka mA sannolikt.
Crille93
Inlägg: 96
Blev medlem: 2 maj 2009, 19:40:12

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

Inlägg av Crille93 »

Jag har en Pickit2, glömde visst säga det :vissla:
Men jag har testat att använda den där koden som gör så att alla utgångar blir hög fast utan att ha knapp funktionen på och då lyser iallafall lysdioderna som sitter på experimentkortet men dom lyser inte lika starkt som när man tänder bara 1 av dom. Men när jag använder samma kod plus knapp funktionen, dvs. den här koden:

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
     clrf      TRISC
     clrf      TRISB
     clrf      TRISA
     movlw b'00001000'
     movwf     TRISA                ;Alla I/O är output förutom RA3 som är input
     bcf       STATUS,RP0

MainLoop:
     bsf       PORTC,2               ;RC2 tänds
InnerLoop1:
     decfsz    Delay1,f
     goto      InnerLoop1
     decfsz    Delay2,f
     goto      InnerLoop1
     btfss PORTA,3                  ;Får RA3 signaler? Ja=Hoppa över nästa.   Nej=Fortsätt till "goto MainLoop".
     goto      MainLoop

Wait1:
     btfsc PORTA,3                  ;Får RA3 signaler? Ja=Fortsätt till "goto Wait".  Nej=Hoppa över nästa.
     goto Wait1

;****************************HÄR ÄR FELET NÅGONSTANS*******************************
Loop:
;****Alla 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
;****Alla RB****
     bsf PORTB,4
     bsf PORTB,5
     bsf PORTB,6
     bsf PORTB,7
;****Alla RA****
     bsf PORTA,0
     bsf PORTA,1
     bsf PORTA,2
     bsf PORTA,4
     bsf PORTA,5

InnerLoop2:
     decfsz    Delay1,f
     goto      InnerLoop2
     decfsz    Delay2,f
     goto      InnerLoop2
     btfss PORTA,3                  ;Får RA3 signaler? Ja=Hoppa över nästa.   Nej=Fortsätt till "goto Loop".
     goto Loop

Wait2:
     btfsc PORTA,3                  ;Får RA3 signaler? Ja=Fortsätt till "goto Wait2".  Nej=Hoppa över nästa.
     goto Wait2
     goto MainLoop
end
Så fungerar inte dom lysdioderna
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

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

Inlägg av sodjan »

Vad har du för matning till det hela ?
Sjunker matningsspänningen ju fler dioder du tänder ?
Hur är dioderna på exp.kortet inkopplade ?

När det gäller koden, fungerar den i MPLAB/SIM ?
Crille93
Inlägg: 96
Blev medlem: 2 maj 2009, 19:40:12

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

Inlägg av Crille93 »

Vad har du för matning till det hela ?
Jag använder min laptops USB port (experiment kortet är inkopplat i programmeraren som är inkopplad till USB porten)

Sjunker matningsspänningen ju fler dioder du tänder ?
Lysdioderna blir svagare ju fler jag har ikopplat, så jag skulle tro det.

Hur är dioderna på exp.kortet inkopplade ?
Dom är kopplade på RA0-3 med en varsin resistor sedan till jord

När det gäller koden, fungerar den i MPLAB/SIM ?
Ska testas ikväll då jag inte har grejerna här. Men kan man simulera lampor som tänds och släcks? Eller något annat som gör så man vet att det fungerar (jag vet bara hur man gör för att se hur PIC processorn läser av koden)
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

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

Inlägg av vfr »

Jag använder min laptops USB port (experiment kortet är inkopplat i programmeraren som är inkopplad till USB porten)

Finns det ingen extern spänningsmatning till kortet, förutom USB:n? Det vore ju ett enkelt sätt att testa om det är det som är problemet. En USB-port är begränad till 100mA i normalläge. Sedan kan enheten förhandla sig till 500mA via USB-protokollet. Iallafall om jag kommer ihåg det rätt. Så det är inga speciellt stora strömmar det handlar om.
Skriv svar