Programmeringstips PIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Mygg@n
Inlägg: 201
Blev medlem: 11 mars 2009, 12:29:35
Ort: Dalarna
Kontakt:

Programmeringstips PIC

Inlägg av Mygg@n »

Jag är nybörjare på PIC och tänkte göra mig ett program för första gången.....
Kolla i denna tråd vad jag har tänkt å göra:
http://www.elektronikforumet.com/forum/ ... =4&t=39909

Har nu köpt mig ett PICKIT2 och undrar om nån kan ge mig lite programmeringsförslag
jag ska använda 3 ingångar och 1 utgång som ska generera pulser beroende på dom olika ingångarna

ska nu prova med dom olika lektionerna som följer med PIKIT2
sodjan
EF Sponsor
Inlägg: 43244
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Programmeringstips PIC

Inlägg av sodjan »

Jahaja, då är det väl bara att köra igång.
När du har någon konkret fråga så tar vi den då.

> jag ska använda 3 ingångar och 1 utgång som ska generera pulser beroende på dom olika ingångarna

Hur då ? Det kan ju se ut på tusentals olika sätt...
Mygg@n
Inlägg: 201
Blev medlem: 11 mars 2009, 12:29:35
Ort: Dalarna
Kontakt:

Re: Programmeringstips PIC

Inlägg av Mygg@n »

Har nu labbat med pickit2 och testat dom medföljande testprogrammen, skulle behöva lite tips på hur jag enklast får ut pulser
Vill få ut 13 olika frekvenser mellan 1,88hz och 13hz (ev 18,8hz-130hz) beroende på vad ingång 1-3 har för status.
Vad ska jag lägga energin på, PWM eller Timer ?
Vad är enklast för mig som nybörjare ?
sodjan
EF Sponsor
Inlägg: 43244
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Programmeringstips PIC

Inlägg av sodjan »

> frekvenser mellan 1,88hz och 13hz

Alltså 1,88 Hz och 13 Hz ?
Det är ju väldigt låga frekvsenser, jag tror att du får problem
med PWM modulen. Vad har du för övrigt för krav på dessa
signaler när det gäller jitter o.s.v. ?

Utan att veta mer än vad du har sagt så är det nog enklast att
sätta upp em timer, räkna ut 13 olika timer värden och sen bara
polla de 3 ingångarna och ändra timer värde beoende på
ingångarna. Utgången/utsignalen fixar du i timer interruptet.
Mygg@n
Inlägg: 201
Blev medlem: 11 mars 2009, 12:29:35
Ort: Dalarna
Kontakt:

Re: Programmeringstips PIC

Inlägg av Mygg@n »

Jo frekvensen är låg, det ska bli 7 st fasta lägen, tänkte nog fel tidigare (1,88 - 3,75 - 5,63 - 7,5 - 9,38 - 11,25 - 13,13 Hz)
jag kan visserligen gångra med 10 eller annat värde men det ska bli en puls till en energilogger så det är inte våldsamt exakt och jag vet ej vilken maxfrekvens den kan räkna, vill bara kunna logga dom olika stegen.
Timer funktionen verkar ju bli den smartaste lösningen, ska labba på detta
sodjan
EF Sponsor
Inlägg: 43244
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Programmeringstips PIC

Inlägg av sodjan »

Du stället altså timern till have periodtiden och "togglar" utgången vid varje interrupt.
Om du t.ex ska ha 13,13 Hz så blir det en periodtid på ca 76 ms. Ställ timern så
att den ger ett interrupt varje 38 ms. En annan sak som du inte har angivit är
med vilken noggranhet tiderna/frekvenserna ska genereras. Handlar det bara
om "inom några procent" eller mycket noggrannare än så ?
Mygg@n
Inlägg: 201
Blev medlem: 11 mars 2009, 12:29:35
Ort: Dalarna
Kontakt:

Re: Programmeringstips PIC

Inlägg av Mygg@n »

Noggrannheten är inte viktig, några procent är helt ok.
Jag har nu beställt boken Mikrocontrollers för att få lite mer uppfattning om struktur m.m,
eftersom jag inte programmerat sen 80-talet då vi fick en abc 80 till eltelelinjen med basic...
sodjan
EF Sponsor
Inlägg: 43244
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Programmeringstips PIC

Inlägg av sodjan »

He he, jag gick fjärde året på el-tele 4-årigt i Norrköping när
våran lärare stolt rullade in skolans första ABC80 i klassrummet... :-)
Sen har jag i och för sig i princip programmerat konstant sedan dess...

Förrutom en bok så kan du även kolla på det intro material som
microchip har. Det beror lite på vilken nivå du vill att det ska ligga på.
Seminumerical
Inlägg: 8
Blev medlem: 31 januari 2010, 19:37:52

Re: Programmeringstips PIC

Inlägg av Seminumerical »

Håller med sodjan om timer-alternativet.
Men timers och interrupts kan vara lite trixigt.

Ett annat alternativ som kan vara lite enklare om man är nyböjare är att helt enkelt skriva fördröjningsloopar.
Det blir sju fördröjningsloopar. Varje loop har halva fördröjningstiden (precis som sodjans förslag)

Om 000 lyser börja om
Om 001 lyser kör loop1
Om 010 lyser kör loop2
Om 011 lyser kör loop3
Om 100 lyser kör loop4
Om 101 lyser kör loop5
Om 110 lyser kör loop6
Om 111 lyser kör loop7
Toggla utsignalen.
Börja om från början.
Mygg@n
Inlägg: 201
Blev medlem: 11 mars 2009, 12:29:35
Ort: Dalarna
Kontakt:

Re: Programmeringstips PIC

Inlägg av Mygg@n »

Jo det var knappt så man fick röra ABC80:n i början....
jag gjorde ett program för att beräkna lindningen på transformatorer och sen den dan så var jag lärarnas favorit :)

Har kollat på microchip:s sida lite och återkommer när jag fått boken och testat lite mer.

Låter intressant med fördröjning, (så är väl exemplet till pickit2 för att blinka dioden)
då toleransen inte är så noggrann utan det är för att kunna logga olika effektstegen ihop med en värmepump
sodjan
EF Sponsor
Inlägg: 43244
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Programmeringstips PIC

Inlägg av sodjan »

> Men timers och interrupts kan vara lite trixigt.

Nja, ett par bitar att sätta och sedan rullar det på av sig själv... :-)

En annan sak (som saknas i förutsättningarna) som kan påverka det
hela är hur snabbt utsignalen behöver ändras när de tre in-pinnarna
får ett nytt värde. Räcker det med att vänta tills en hel period av
den aktuella frekvensen har gått klart ? I så fall räcker det ju med att
kolla pinnarna och sedan köra en period av aktuell signal (med
programvaru-fördröjning under tiden). Sedan kolla pinnarna igen o.s.v...
Seminumerical
Inlägg: 8
Blev medlem: 31 januari 2010, 19:37:52

Re: Programmeringstips PIC

Inlägg av Seminumerical »

PIC Microcontroller Compiled Tips 'n Tricks Guide
http://ww1.microchip.com/downloads/en/D ... 01146B.pdf
Rekommenderad läsning.

Funkar inte länken så klicka dig in på microchips hemsida och hitta en 8-bitars kontroller.
Nästan längst ner i listan med PDFer så finns den.
Skriv svar