Mikroprocessor till reglersystem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Mikroprocessor till reglersystem

Inlägg av vfr »

Nja. Inte PIN-nr som i kapselns PIN-nr. Utan portens bitnr. Bit 0 i registret PORTC motsvarar t.ex första portpinnen på port C. För att sätta denna så ska du sätta registret till 1 (bitvärdet för bit 0). Bit 1 i PORTC motsvarar andra portpinnen på port C. Då sätter du PORTC till 2 (bitvärdet för bit 1). Och motsvarande för övriga bitar. Greppar du inte det, så bör du nog läsa på lite om binära talsystem och bitvärden för att komma vidare.
Kretskort
Inlägg: 182
Blev medlem: 5 februari 2008, 08:07:45
Ort: Göteborg

Re: Mikroprocessor till reglersystem

Inlägg av Kretskort »

vfr skrev:Nja. Inte PIN-nr som i kapselns PIN-nr. Utan portens bitnr. Bit 0 i registret PORTC motsvarar t.ex första portpinnen på port C. För att sätta denna så ska du sätta registret till 1 (bitvärdet för bit 0). Bit 1 i PORTC motsvarar andra portpinnen på port C. Då sätter du PORTC till 2 (bitvärdet för bit 1). Och motsvarande för övriga bitar. Greppar du inte det, så bör du nog läsa på lite om binära talsystem och bitvärden för att komma vidare.
Jag förstår inte ändå :oops:

Jag vet hur binära tal är uppbygda och att en bit bara kan vara hög eller låg.

Det hade varit jätteschysst om någon bara kunde förklara hur det gått till i just detta fall. Jag tror inte jag kan komma vidare på egen hand och jag har inte en aning om vad jag ska söka på.

Dessa tal skickas av programmet till PORTC:
[1,3,7,15] (tänder dioder åt höger)
[8,12,14,15] (tänder dioder åt vänster)
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Mikroprocessor till reglersystem

Inlägg av v-g »

Du testa kalkylatorn i windows. Slår du på avancerad kan du direkt se vad ett tal blir i hex, bin och decimal form. Använder den själv för jämnan.

HEX är också viktigt eftersom varje tal i HEX motsvaras av 4 binära. (decimalt 0-15)

[1,3,7,15] (tänder dioder åt höger)
00000001
00000011
00000111
00001111

[8,12,14,15] (tänder dioder åt vänster)
00001000
00001100
00001110
00001111
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Mikroprocessor till reglersystem

Inlägg av vfr »

Dessa tal skickas av programmet till PORTC:
[1,3,7,15] (tänder dioder åt höger)
[8,12,14,15] (tänder dioder åt vänster)


1 = bara bit 0 hög, övriga låga (00000001)
3 = bit 0 + 1 höga, övriga låga (00000011)
7 = bit 0 + 1 + 2 höga, övriga låga (00000111)
15= bit 0 + 1 + 2 + 3 höga, övriga låga (00001111)

8 = bara bit 3 hög, övriga låga (00001000)
12 = bit 2 + 3 höga, övriga låga (00001100)
14 = bit 1 + 2 + 3 höga, övriga låga (000001110)
15= bit 0-3 höga, övriga låga (00001111)

Om du nu kan det binära talsystemet, så förstår jag inte riktigt var problemet ligger.
sodjan
EF Sponsor
Inlägg: 43244
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Mikroprocessor till reglersystem

Inlägg av sodjan »

> Dessa tal skickas av programmet till PORTC:
> [1,3,7,15] (tänder dioder åt höger)
> [8,12,14,15] (tänder dioder åt vänster)

Skriv talen binärt istället. Eller åtminstående hexadecimalt.

Håller med övriga, det är lite svårt att förstå vad problemet är...
TotteBasicPic
Inlägg: 36
Blev medlem: 30 december 2008, 11:38:08
Ort: Halmstad

Re: Mikroprocessor till reglersystem

Inlägg av TotteBasicPic »

Kanske detta

Om Bars är 0 skickas 1 till PORTC
Om Bars är 1 skickas 3 till PORTC
Om Bars är 2 skickas 7 till PORTC
Om Bars är 3 skickas 15 till PORTC


edit

är TRISC = %11111111

H.Thomas
Kretskort
Inlägg: 182
Blev medlem: 5 februari 2008, 08:07:45
Ort: Göteborg

Re: Mikroprocessor till reglersystem

Inlägg av Kretskort »

Men detta är ju lysande! :D

Nu förstår jag hur sambandet är. Smart att skicka så mycket information i en enda siffra.

Jo, ovanstående är ett problem för en kille som inte arbetat med andra digitala signaler än strömbrytarna till sin belysning hemma...

TotteBasicPic: Japp, så långt var jag med. :)
MGKea
Inlägg: 114
Blev medlem: 22 oktober 2008, 14:56:14
Ort: Eskilstuna

Re: Mikroprocessor till reglersystem

Inlägg av MGKea »

Fredrick skrev:Absolut genomförbar....

Eftersom du inte verkar kunna programmera i ASM så föreslår jag något nu som kommer att uppröra en del personer här (du lär märka det...).

PICBASIC PRO compiler ifråm Melabs.com och PICkit2 ifrån Microchip, ja och så en microprocessor och några DS1820 för temperatur mätningen, källkod kan jag hjälpa dig med.
Jag är också intresserad av lite källkod.
Kretskort
Inlägg: 182
Blev medlem: 5 februari 2008, 08:07:45
Ort: Göteborg

Re: Mikroprocessor till reglersystem

Inlägg av Kretskort »

Just nu använder jag MicroCode för jag tycker det är enklare än MPLAB.

Hur får jag koden att köras på Microcontrollern så fort enheten programmerats? Den dumpar över koden som den ska men programmet körs inte sedan.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Mikroprocessor till reglersystem

Inlägg av v-g »

Och du har kontroll på MCLR pinnen och även dess interna inställning?
Kretskort
Inlägg: 182
Blev medlem: 5 februari 2008, 08:07:45
Ort: Göteborg

Re: Mikroprocessor till reglersystem

Inlägg av Kretskort »

v-g skrev:Och du har kontroll på MCLR pinnen och även dess interna inställning?
Ja, där hade vi det!

Jag lade till -R och -T på kommandoraden, och nu fungerar det!

R Release /MCLR after operations
T Power Target after operations

Om jag har förstått det rätt så läggs en spänning på MCLR då PICen programmeras, vilket nollställer den? Och release parametern i detta fall tog bort denna spänning?

Här är en guide för att koppla PICkit2 till microcode studio:
http://nutsvolts.texterity.com/nutsvolts/200801/?pg=67

Här är mina parametrar på kommandoraden:
-PPIC$target-device$ -F$hex-filename$ -E -M -Y -Y -R -T -Hk
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Mikroprocessor till reglersystem

Inlägg av v-g »

Hur pinnen fungerar står i databladet.

Men för att vara hygglig så normalt kör man den med 10K pullupmotstånd för att få något alls att hända.

Dvs pinnen mot jord = konstant reset = inget händer.
Kretskort
Inlägg: 182
Blev medlem: 5 februari 2008, 08:07:45
Ort: Göteborg

Re: Mikroprocessor till reglersystem

Inlägg av Kretskort »

Aha okaj. :)

Jag försöker just nu sätta ihop en räknare till programmet. Det sitter en switch på PORTA.3 som är 0 då switchen är nedtryckt.

Jag har försökt räkna nedtryckningar på switchen genom koden:

Kod: Markera allt

counter VAR BYTE 

IF porta.3 = 0 THEN
counter+1 
ENDIF 
Tanken är att varje gång switchen trycks ner ska en etta läggas till i variabeln "counter", men kompilatorn vill överhuvudtaget inte svälja koden.

Hur ska jag gå till väga? Jag har kikat i PBP manualen men inte hittat något.

Sen har jag försökt med COUNT kommandot med men den gör ju inget annat än räknar pulser under en given tidsperiod.

På Mitsubishi PLC finns det satans enkla räknarmoduler som gör livet enkelt, det finns inga motsvarighet på PIC som jag missat?

Jag har lyckats göra ett rinnande ljus med lookup kommandot nu iallafall. :D
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Mikroprocessor till reglersystem

Inlägg av vfr »

Men snälla, skriv vad du får för fel då, om du vill ha hjälp. Folk kan ju inte sitta och gissa.

Nu gissar jag iallafall.

Raden 'counter+1' borde nog vara 'counter = counter+1'. Annars vet inte kompilatorn vad den skall göra med resultatet av beräkningen.
sodjan
EF Sponsor
Inlägg: 43244
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Mikroprocessor till reglersystem

Inlägg av sodjan »

> Om jag har förstått det rätt så läggs en spänning på MCLR då PICen programmeras,

Inte helt rätt.
Det läggs en spänning till MCLR pinnen (spänningen kallas Vpp och nivån framgår av
det aktuella databladet, det varierar lite) för att få processorn att gå över till
"programming mode". Det innebär inte att det händer någonting alls.
Sedan, när processorn befinner sig i "programming-mode" så får man skicka
olika kommandon till den för att *t.ex.* göra en "erase all", eller något annat.

Ditt försök att räkna knappnedtryckningar på "porta.3" har flera problem, det
största sannolikt att du inte tar hänsyn till kontaktstudsar. Du kommer att räkna
10-20 "steg" varje gång knappen trycks.
Skriv svar