Sida 1 av 2
Mina lysdioder vill inte lysa
Postat: 16 juli 2005, 10:57:24
av sebbe
Hej!
jo det är så jag jag fick hem en wisp628 för några dagar sen mycket nöjd över den jag ladda ner det färdigt blink projekt som va skrivet i assambler eller nåt och då fick jag min pic16f628 att blinka då tänkte jag bra då funkar allt men sen när jag försökte programmere så samma "lampa" lyser i pbp så funkar ingenting
jag gjorde så här :
Kopplade som de har gjort här
och skrev den här kod snutten
men det händer ingenting kan nån hjälpa mig komma igång så jag kan få en lysdiod att funka (fan jag måsta va sämst =/)
Sebbe
(jag skriver konstigt så om du inte fattar nåt försök förstå =))
Postat: 16 juli 2005, 11:08:27
av speakman
Du har ju valt en pullup-lösning, då måste du sätta PORTA.0 = 0 eftersom du måste jorda för att den ska lysa.
Nu var det ett tag sedan jag körde PIC, men kanske måste du sätta något register för att köra pullup. Någon annan vet kanske bättre?
Dessutom är ju inte MCLR draget annat än till kontakten, och hur den är kopplad vet inte jag, men den måste vara i om du ska få processorn att fungera.
Mvh
speakman
Postat: 16 juli 2005, 11:38:13
av Icecap
Standard är att man sätter en 10-47K mellan MCLR och VCC om man har ICP-möjlighet.
Jag antar att du har vald intern oscillator.
Och, som speakman påpekar: med detta schema ska du skriva ut en nolla för att slå på den.
Men med det program du har givit kan inget blinka, inget växlas ju men du kanske menar stt den ska tända?
Du har såklart kommit ihåg att sätta TRISA till xxxxxxx0 också?
Postat: 16 juli 2005, 15:05:44
av sebbe
jag har testat sätta en motstånd på 47kohm mellan mclr och +5
och så gjorde jag en kod som såg ut så här
Kod: Markera allt
CMCON = 7
TRISA.0 = 0
Loop: PORTA.0 = 0
Pause 500
PORTA.0 = 1
Pause 500
GoTo Loop
End
men det funka inte heller =( det ända som händer är att när jag drar ut programeraren och stänger av mitt labagg så börjar lampan jag vill att lysa i 1-2 sekunder skit skumt
sebbe
Postat: 16 juli 2005, 19:59:40
av Icecap
Men vänta lite......är det A/D-omvandlare på den kretsen? I så fall ska du stänga av den först om du använder den porten....
Nåväl, funkar det så gör det, jag undrar bara en sak: är omröraren (Wisp) kopplat in när du kör? Har du testat att den är bortkopplat?
Postat: 17 juli 2005, 10:09:23
av sebbe
mm jag har testat dragit ur den ur datorn
men jag testade med lite jal kod och då funka det bra så jag vet inte
sebbe
Postat: 17 juli 2005, 10:15:08
av Icecap
Nu menade jag om vispen var kopplat till PIC'en ju....
Men den jal kod (vad det nu är) fungerar alltså, då måste det vara din kod som kanske inte initialiserar rätt t.ex.
Är det vald rätt oscillator?
Ar porten i rätt läge?
Är A/D avstängd och porten gjort digital? (om det nu finns A/D inbyggd)
osv.
Postat: 17 juli 2005, 11:02:09
av sebbe
wispen är kopplad som på bilden ovan och sen in i programmeraren
sen om jag ska vara ärlig vet jag inte om allt det där är rätt inställt hur kollar man det då?
och jal är nåt språk killen som uppfan wispen har kommit på
http://www.voti.nl/jal/index.html
sebbe
Postat: 17 juli 2005, 12:56:19
av Icecap
Inställningar framgår av koden, med initialisera menar man oftast att mjukvara brukar följa vissa grundläggande steg:
1: Upprätta pekare och värden (vid behov)
2: Ställ CPU's hårdvara rätt enligt behov.
3: Ställa in portar till rätt värde, in/ut osv.
4: Ställ evt. parametra i ett utgångsläge
5: Kör "det riktiga" programmet. (blinka i detta fall)
Om den kod du la in tidigare i tråden är allt verkar du ha missat steg 2, steg 1 & 4 är inte riktigt viktiga i detta läge utom ifall att du måste specificera ett kristallvärde för att få 'Pause' att fungera rätt.
Om du t.ex. kör 4MHz och jal tror att du kör 20MHz för att du inte har specificerat annat kommer cyklustiden ju att vara 0,5 *(20/4) = 2,5 sek om nu tiden för 'Pause' anges i ms.
Postat: 17 juli 2005, 18:59:42
av melki
Jag är nybörjare på PIC och den här sidan har hjälpt mig:
http://amqrp.org/elmer160/lessons/
Jag använder också Xwisp och den kan vara ansluten både till datorn och PIC628 när du exekverar koden.
Lycka till!
Melki
Postat: 18 juli 2005, 00:12:24
av sodjan
Hej !
Kul att Wisp628'an fungerar OK ! (Wisp = geting, och inget annat...)
Sen dina problem...
Finns det inga 16F628 exempel i PBP distibutionen ?
Jag har själv aldrig kört PBP, så jag vet inte...
Mitt personliga tips är att ge f-n i allt vad Basic, C o.s.v heter tillsvidare. Kör ASM tills du "kan" PIC processorerna. Då hade du
knappast försökt med det Basic program som du visade först här...
Det är en hel del som saknas i din första kod för att det skall fungera,
de flesta kommentarerna hittills är väll i stort OK, men...
> "Nu var det ett tag sedan jag körde PIC, men kanske måste du sätta något register för att köra pullup."
Inget speciellt, förruom att porten måste vara *utgång*, så klart.
Angående alla kommenterar kring WISP628'an, så kan den vara ansluten.
Den sätter MCLR hög efter en lyckat programmering och sätter alla
andra I/O high-Z. Den är konstruerad för att vara ansluten hela tiden.
> "Jag antar att du har vald intern oscillator."
Omöjligt att säga, eftersom koden helt saknar CONFIG (eller vad det heter i PBP) statement.
> "är det A/D-omvandlare på den kretsen?"
Nej, det är två analoga komparatorer. De måste stängas av (via CMCON).
> "Jag är nybörjare på PIC och den här sidan har hjälpt mig:
http://amqrp.org/elmer160/lessons/ "
He he, dessa sidor (som har mycket snygg design och så) använder (MOT ALLT FÖRSTÅND) 16F84 !! D.v.s att man genom att läsa dom lär sig en del saker som är helt fel på moderna/aktuella PIC. Det är ganska lätt som nybörjade att "fastna" för den processor som man lärde sig på.
Det är ju himla tråkigt att de, när de ändå har lagt mer så mycket jobb, inte kunde ha valt en vettig processor ! 16F628 borde vara absolut minimum...
Postat: 18 juli 2005, 00:22:23
av bengt-re
Kloka kommentarer sodjan, jag gjorde nästan samma misstag när jag började med pic ist för 8051-derivat som jag kört förr. Men lika bra att inse att man MÅSTE läsa databladet noggrannt för den uP man tänkt använda och som jag nyligen återupptäckte - det går fan inte föra tidskritiska saker med högnivåspråk då man inte med säkerhet vet hur många klockcykler olika saker tar och att NOPá den assamblerade koden ifrån hågnivåkompilatorn för att få koden tidsäkta... nä, lika bra att återgå till assambelern igen även om det är jobbigt, tar tid och är stökigt. Man saknar färdiga moduler för vissa saker - retar mig lite att man måste uppfinna ALLT själv igen - försökt ladda ner och ta koden för något i veckan nu - men tar lägre tid att lista ut karln som skrev koden har tänkt än att uppfinnna hjulet själv igen och skriva koden. Kunde inte microchip bjuda på ett bra bibliotek med några grundläggande rutniner - väl kommenterade så att man kan spara lite tid iaf? Visst visst, nu börjar jag ha egna rutiner för det mesta som är träligt att skriva, men mått finnas 20" andra som gjort samma sak tidigare och i slutändan fått samma bilbliotek som jag själv har....
i 8051 världen uplevde jag att det fanns mer väldokumenterade rutiner som snälla människor lagt upp för allmännt bruk, men kanske bara jag som inte hittat rätt pic-forum?
Postat: 18 juli 2005, 00:30:20
av melki
Sodjan, jag har tittat på den här sidan också som använder 628 an:
http://www.winpicprog.co.uk/pic_tutorial.htm
Har du fler tips på tutorials?
Melki
Postat: 18 juli 2005, 00:43:03
av sodjan
Om man vill köra PIC assembler riktigt seriöst, så kan man kolla in den utvecklingsmiljö som Olin Lathrop (killen som skrev programvaran till den "LED-snurra" som jag skrev om i en annan tråd) har ställt samman (och vänligen gjort helt öppen).
Jag har själv "satt upp" det tillsammans med UltraEdit32 (UE) och Wisp628 som programmerare. Jäkigt snyggt, med "Build-n-Flash" direkt från menyn inne i UE.
Olin's miljö innehåller en mängd macron och en pre-processor som tar hand om saker som :
- Banking. Lägger bara till bcf/bsf om det behövs, alltså optimerat.
- "Long jumps and calls"
- baud-rate uträkning.
- definiera "flagor", d.v.s "1-bitars variabler".
- definition av in och ut kanaler med automatisk hantering av TRISx.
- Macron för FIFO buffert.
- mm, mm.
Jag vill inte säga att det är enkelt (mycket DOS-pulande) att installera, men en kraftfull assembler miljö är det !
Allt kan laddas ner här :
http://www.embedinc.com/pic/
Jag har sammanställt en PDF version av det som finns på EmbedInc sidorna som kan hittas här :
http://www.jescab.se/embedinc.htm. (Inte helt aktuellt, bl.a saknas all dsPIC info som Olin har lagt till nyligen...)
Som sagt, för den *seriöse* PIC assembler programmeraren...

Postat: 18 juli 2005, 00:44:27
av sodjan
> "Har du fler tips på tutorials? "
Tyvärr...