Steget från en PICkit2 -> "Riktigt projekt"

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av sodjan »

Angende simulering så är det lite oklart vad det var du fastnade på.
Om du t.ex anger vad som var oklart i dokumentationen så är det
enklare att förklara. T.ex "2.12 TESTING CODE WITH THE SIMULATOR"
i Quick-Start guiden. Den ser ganska klart och tydligt ut, så vitt jag kan se.

Man, som sagt, om det ska vara någon mening med detta så får du
vara lite tydligare med vad du inte förstår eller vad som inte fungerar
som du trodde att det skulle göra.

Just nu kan jag inte hitta "quick start" guiden till MPLAB, men se även :
http://www.microchip.com/stellent/idcpl ... m=en022515
och sedan t.ex "Getting Started with MPLAB SIM" i menyn till vänster. Det ser
i princip ut som det gör i min PDF kopia. Även "Introduction to MPLAB® SIM Software Simulator"
http://www.microchip.com/stellent/idcpl ... m=en022520
i samma meny på samma sida. Där finns info om MPALB/SIM både som en media (WMF) fil (både
som en ZIP och "streaming") samt en PDF med samma material...
http://techtrain.microchip.com/websemin ... ?Active=61
Titta igenom WMF filen och se om det inte ger några ledtrådar...
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9080
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av AndersG »

Den bästa början är att ladda ned de "PICKIt Lessons" som följer med PICKit och köra igenom dem. Då får du en bra inblick i hur det fungerar. Sedan så kan MPLAB som sagt var simulera utan att du har någon hårdvara alls, det är bara att välja MPSIM i menyn. Man kan även debugga programmet i mikrokontrollern, singelsteppa etc, men inte med en 16F690, det behövs större processorer till det, men alla Microchips processorer är ganska lika, du kan ofta ta ett progrem skrivet för en processor och kompilera om för en annan och köra, förutsatt att den andra processorn har samma in/utenheter.

se även:
http://www.covingtoninnovations.com/nop ... em2004.pdf
(något dated, men ändå OK)
Användarvisningsbild
korp
Inlägg: 1216
Blev medlem: 30 maj 2006, 02:21:18
Ort: Strömstad

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av korp »

lolzor, jag vill minnas att mitt första intryck av MPLAB IDE var att det inte kändes så intuitivt. Har man sedan gjort några projekt så vänjer man sig och tänker inte mer på det. Ett tips är att kolla dokumentationen när det gäller så här pass stora program. Vissa grundläggande saker måste/bör ställas in, och man måste förstå hur miljön fungerar för att inte köra fast innan man har ens börjat. Börjar man med microkontrollers så får man ställa in sig på att läsa mycket mycket dokumentation och datablad. Ofta känns det som det blir mer läsning än konkret programmering.

Ett klart tips för dig just nu är att gå igenom "Chapter 4. A Basic Tutorial for MPLAB IDE" i MPLAB IDE User's Guide som du hittar längst ned på MPLAB:s sida. Sen är det bara att fortsätta läsa om MPLAB, databladet för den microkontroller du väljer, kringkomponenterna den ska kopplas till, etc... :)

Edit: Tilläggas bör att det även länkats till många bra nybörjarguider tidigare i den här forumkategorin. Jag brukar tipsa om Mikroelektronika:s “PIC Microcontrollers”, som även går att köpa i tryckt format.
lolzor
Inlägg: 16
Blev medlem: 12 januari 2009, 16:40:46

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av lolzor »

Nu så har jag beställt min PICkit, och även en bok som jag fann lite intressant i sammanhanget "PIC Robotics" , en bok med lite PIC-projekts och som (såvitt jag förstod), ska vara skriven för assembler. - https://www1.elfa.se/elfa~se_sv/b2b/cat ... ab=catalog - , och får leveransen någon gång nu i veckan :)

Har också sakta men säkert matat mig igenom MPLAB manualen, och faktiskt lyckats komma igång någonlunda nu måste jag säga :) Tillvaron börjar sakta men säkert ljusna! (Om än tillfälligt i alla fall, får se om jag ändrar min uppfattning när jag väl börjat läsa datablad och dylikt ordentligt sen ;) )
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av sodjan »

> Nu så har jag beställt min PICkit...

En PICkit2 hoppas jag. Den första modellen (kallas även PICkit1) är inte så intressant i dag.
Vat det "PICKIT 2 Starter Kit" (73-344-18) ? Det är väl det alternativ som är
mest intressant för hemmapularen.

Kopiera inte ELFA länkar på det där sättet ! Skriv bara in artikelnumret (xx-xxx-xx) så
fixar forumet rätt länk automatiskt (som jag gjorde här ovanför).

> får se om jag ändrar min uppfattning när jag väl börjat läsa datablad och dylikt ordentligt sen...

Ja, i så fall beror det nog inte på databladen i alla fall. De är erkänt bra. :-) :-)
lolzor
Inlägg: 16
Blev medlem: 12 januari 2009, 16:40:46

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av lolzor »

Sjävfallet en PICkit2 ^^
Edit: Yes precis en sådan! Tacka vet jag CSN-rabatt på det sedan med, ty studentens plånbok inte är allt för imponerande alla gånger ;p
Hmm, kände inte till att man kunde göra så, men då vet jag till nästa gång :)

Haha, vadå ? skulle det bero på eleven att det blir fel ?!? ; )
Användarvisningsbild
Glenn
Inlägg: 36620
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av Glenn »

lolzor skrev:Nu så har jag beställt min PICkit, och även en bok som jag fann lite intressant i sammanhanget "PIC Robotics" , en bok med lite PIC-projekts och som (såvitt jag förstod), ska vara skriven för assembler. - https://www1.elfa.se/elfa~se_sv/b2b/cat ... ab=catalog - , och får leveransen någon gång nu i veckan :)
Din elfalänk är trasig, men om det är samma bok som jag har, av John Iovine så handlar den inte om asm, utan om Picbasic och PicbasicPRO.
lolzor
Inlägg: 16
Blev medlem: 12 januari 2009, 16:40:46

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av lolzor »

Glenn; Mjo jag märkte det =/ så ska ta och lämna tillbaka boken nu i veckan igen

Nu har jag iaf hämtat ut min kära lekkamrat till PICkit2 :) Suttit i nästan 3 timmar och läst datablad, instruktioner m.m utan att än ha skrivit en enda rad kod, och har fastnat (eller tja, lättare sagt blivit fundersam på om jag har rätt eller inte i min tankegång):

Det var det här med fil register ("File registers"), som jag inte helt har kopplat än. Såhär har jag iaf förstått det (Efter att ha läst ca 30 sidor i databladet för PICF690, och även lite kort i "Low Pin Count User Guide". Två PDF;er som båda fanns med på CD-skivan som medföljde till PICkiten.:

1) General Purpose index (GPR);

Ska som jag har fattat det ha som uppgift att lagra variabler, GPR har sin "plats" på de 96 sista adresserna i varje bank

2) Special File Register

Så vitt jag har förstått är det SFR som håller koll på vart i programmet/koden som "man är i" när programmet körs.

Edit: Är jag helt ute och cyklar eller någonlunda på rätt spår?

(Självfallet), så har jag lite frågor/funderingar angående detta och lite till efter att ha läst, och tyckt mig förstått lite iaf:
Programkoden borde väl således "mitt emellan" dessa två i dataminnet i respektive bank?
Blev lite förbryllad över detta när jag kollade på hur // Bild 2-8 sida 33 i databladet för PIC16F690 // såg ut. Här verkade det som att det nästan bara fanns minnesplats i bank 3? I bank 0-2 fanns det inte i närheten lika många lediga adresser som i bank 3, hur kan det vara så egentligen? (Har micorprocessorn lättare att komma åt bank 0-2 och att de mer "primära" grejerna ligger i dessa lagerna, eller är det bara så för "att det är så" ? )

/ Mvh
En nyfiken, och vetgirig Erik
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av vfr »

GPR betyder "General Purpose Register" och är mycket riktigt generella register som du kan använda till variabler t.ex. SFR betyder däremot "Special Function Register" och är en samling register som används för att styra processorn och dom olika periferienheterna. Var du är i koden och exekverar, styrs av PC (Program Counter) som är uppdelad i två SFR. Höga och låga byten. Så SFR i sig är inte samma sak som programräknaren. Programräknaren är ett (eller snarare två) SFR. Men det finns en massa andra SFR också.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av sodjan »

Du behöver kolla lite extra någonstans där en PIC's arkitektur beskrivs.
Det beskrivs inte från grunden i varje datablad (eftersom det i princip
är likdant mellan alla PIC), utan det beskrivs mycket bättre i "Midrange
Reference Manual" som gäller generellt för alla PIC16 (även om den inte
har med de allra senaste finnesserna, men där kompletterar databladen):

http://ww1.microchip.com/downloads/en/D ... 33023a.pdf.

"Section 4. Architecture" och "Section 6. Memory Organization" innehåller
svaren på dina frågor kring SFR, GPR och programminne. Dina gissningar var
nog lite snett ute (och vfr har inte heller helt rätt), så kolla gärna dessa
kapitel, det är bara några sidor. Speciellt "Section 6...".

> > 1) General Purpose index (GPR);
>
> Ska som jag har fattat det ha som uppgift att lagra variabler,...

Korrekt

> ...GPR har sin "plats" på de 96 sista adresserna i varje bank

Det varierar mellan olika PIC modeller. Där har databladet det korrekta svaret
för varje inviduell modell.

>> 2) Special File Register
>
> Så vitt jag har förstått är det SFR som håller koll på vart i programmet/koden som "man är i" när programmet körs.

Nja. Det finns *ett* SFR (PCL) som är de lägsta 8 bitarna i programräknaren. De högre bitarna
i programräknaren kan man inte komma åt direkt. Se manualen ovan för detaljer, men gräv inte
ner dig i just det just nu... :-)

> Programkoden borde väl således "mitt emellan" dessa två i dataminnet i respektive bank?

Nej, absolut inte !
Programminnet och dataminnet (med SFR och GPR) är två helt separata minnesenheter !!
Läs på i Section 6 ovan, så ser du det...

Sen, hur GPR'erna är fördelade mellan de 4 bankerna varierar mellan PIC modeller.
Igen, databladet talar om hur det ser ut i just din PIC.

> Har micorprocessorn lättare att komma åt bank 0-2...

Nej, igentligen inte.

> ...och att de mer "primära" grejerna ligger i dessa lagerna,

"Lagerna" ? Menar du bankerna ?
Jo, delvis är det så, man har försökt ordna SFR'erna så att det inte ska bli
onödiga bank-byten.

> eller är det bara så för "att det är så" ?

Så kan man också uttrycka det, ja... :-) :-)
lolzor
Inlägg: 16
Blev medlem: 12 januari 2009, 16:40:46

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av lolzor »

Tackar för svaren! :) Och särskillt tack för den PDF;en, har inte sett den innan, men verkar ju onekligen vara värd att kika igenom! Nu är det bara att nöta drygt 700 A4 i helgen som kommer då ; )


> ...GPR har sin "plats" på de 96 sista adresserna i varje bank
Vart så för min PIC ang. GPR-platsen, om jag nu inte missförstod mitt datablad helt fel iaf :p
The data memory (see Figures 2-6 through 2-8) is
partitioned into four banks which contain the General
Purpose Registers (GPR) and the Special Function
Registers (SFR). The Special Function Registers are
located in the first 32 locations of each bank. The
General Purpose Registers, implemented as static
RAM, are located in the last 96 locations of each Bank.
Register locations F0h-FFh in Bank 1, 170h-17Fh in
Bank 2 and 1F0h-1FFh in Bank 3 point to addresses
70h-7Fh in Bank 0. The actual number of General
Purpose Resisters (GPR) in each Bank depends on the
device. Details are shown in Figures 2-4 through 2-8.
All other RAM is unimplemented and returns ‘0’ when
read. RP<1:0> of the STATUS register are the bank
select bits
(sida 26 i databladet).

Har för övrigt just fått min första LED att lysa, lyckan är total i huset just nu! Resan mot oändlighetens horisont har nu börjat! :D
Användarvisningsbild
xraid
Inlägg: 1129
Blev medlem: 20 mars 2009, 04:12:14
Ort: Stockholm

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av xraid »

kalas \o/ . ibland som oftast när man befinner sig i ett mörkt slutet rum söker lysknappen lägst väggarna förtvivlat utmattad sitter ner ... reser sig upp . går till mitt i rummet . sträcker hand upp . där ja där är ett lys snöre . varde ljus ...

grattis ...
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av sodjan »

När det gäller Ref Manueln så är det inte alla kapitel som är "bra".
Främst är det de generella delarna kring arkitektur, ALU/MPU, minne
och liknande (i princip Section 2-5). När det gäller övriga kapitel om t.ex
USART, Timers, ADC o.s.v., så är det inte alls lika viktiga, där har varje
datablad ofta bättre information. (Ref manualen är lite gammal och dessa
enheter har utvecklats en del i senare/modernare PIC16 modeller).

Ett kapitel som jag dock varmt vill rekomendera är "Section 29. Instruction Set".
Det har mycket bättre exempel till de olika instruktionerna än vad som
finns i den komprimerade förteckningen i databladet.

> Har för övrigt just fått min första LED att lysa,

Helt eget program eller ett av exemplen som kom med PICkit2'an ? :-)
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av vfr »

och vfr har inte heller helt rätt

Jag antar att du syftar på beskrivningen av PC. Nej, den var inte fullständigt korrekt med avseende på t.ex PCLAT och liknande. Det var en förenkling för att "rätta" dom grövsta felen i antagandet. Kanske fel att inte göra en mer ingående (och korrekt) beskrivning, men det kändes som att det räckte för ögonblicket.
lolzor
Inlägg: 16
Blev medlem: 12 januari 2009, 16:40:46

Re: Steget från en PICkit2 -> "Riktigt projekt"

Inlägg av lolzor »

Hej igen!
Nu så börjar jag, åtminstone få illusionen av ;) att jag börjar, förstå mig på PIC;en litegranna i alla fall. Har kikat igenom exemplen lite, och blev lite fundersam på det här med "Delay loops"

(Exempelkod från microchip)

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
     bcf       TRISC,0             ; make IO Pin B.0 an output
     bcf       STATUS,RP0          ; back to Register Page 0
MainLoop:
     bsf       PORTC,0             ; turn on LED C0
OndelayLoop:
     decfsz    Delay1,f            ; Waste time.  
     goto      OndelayLoop         ; The Inner loop takes 3 instructions per loop * 256 loopss = 768 instructions
     decfsz    Delay2,f            ; The outer loop takes and additional 3 instructions per lap * 256 loops
     goto      OndelayLoop         ; (768+3) * 256 = 197376 instructions / 1M instructions per second = 0.197 sec.
                                   ; call it a two-tenths of a second.
      
     bcf       PORTC,0             ; Turn off LED C0
OffDelayLoop:
     decfsz    Delay1,f            ; same delay as above
     goto      OffDelayLoop
     decfsz    Delay2,f
     goto      OffDelayLoop
     goto      MainLoop            ; Do it again...
     end
      
Det som gör mig fundersam är just den här biten:

decfsz Delay1,f ; Waste time.
goto OndelayLoop ; The Inner loop takes 3 instructions per loop * 256 loopss = 768 instructions

Så vitt jag kan se i koden, så har inte "Delay-variabeln" givits något värde? För cblock 0x20 är väl bara adressen där värdet ska placeras och inget variabelvärde?
Hur blir det då så att det blir 256 loopar?
En okvalificerad teori från min sida är att "Delay" på något sätt har fått det binära värdet [ 0001 0000 0000 = 256 ] , men var ser man i så fall detta om det nu skulle stämma?

// Mvh: Erik
Skriv svar