PICkit 2 nybörjare

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
H3MP4
Inlägg: 6
Blev medlem: 9 oktober 2010, 19:03:35

PICkit 2 nybörjare

Inlägg av H3MP4 »

Hej jag är nybörjare med PICkit 2 och undrar om man kan programmera i visual basic för att sedan använda koden till PICkit 2. Jag kan visual basic ganska så bra men har endast kodat små program till datorn och undrar om någon vet hur jag kan koda så att jag kan styra t.ex. ett servo, motor eller en LED lampa.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: PICkit 2 nybörjare

Inlägg av Icecap »

Nej!

Och många här vet hur man styr en massa saker med mikroprocessorer.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9086
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: PICkit 2 nybörjare

Inlägg av AndersG »

De finns BASIC-varianter för PIC ja, men de är ganska olika VB. VB är avsett för att programmera mot Windows. Skulle rekommendera att du åtminstone lär dig grunderna i Assembler först eftersom det gör det enklare att förstå hur PICen fungerar.
H3MP4
Inlägg: 6
Blev medlem: 9 oktober 2010, 19:03:35

Re: PICkit 2 nybörjare

Inlägg av H3MP4 »

Jag kollade runt lite på nätet och där skrev de i notepad++. Är det rätt så eller ska jag ladda ner något annat program för assembler?
danei
EF Sponsor
Inlägg: 27405
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Re: PICkit 2 nybörjare

Inlägg av danei »

MPlab är nog att rekommendera. Men det är möjligt att notepad++ funkar det med det har stöd för en hel del.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9086
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: PICkit 2 nybörjare

Inlägg av AndersG »

Du skall definitivt se om du kan använda MPLAB. Det är gratis och innehåller en bra simulator så du kan testköra dina program utan att behöva bränna ned dem på en PIC. Om du är nybörjare så skall du börja med att ladda ned den senaste MPLAB från Microchip och dessutom de "PICKit Lessons" som hör till. Kör sedan dem först.
H3MP4
Inlägg: 6
Blev medlem: 9 oktober 2010, 19:03:35

Re: PICkit 2 nybörjare

Inlägg av H3MP4 »

Jag har redan mplab, men är det svårare att programmera i mplab än VB?
danei
EF Sponsor
Inlägg: 27405
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Re: PICkit 2 nybörjare

Inlägg av danei »

Det beror väl viket du kan bäst. För dig är det kanske svårare, för andra är det tvärt om.
Ska du programmera PIC så är det det lättaste sättet.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PICkit 2 nybörjare

Inlägg av sodjan »

> ...men är det svårare att programmera i mplab än VB?

MPLAB är i princip en IDE, ungefär lite som Visual Studio.
Med hjälp av MPLAB kan man sedan skriva t.ex assembler eller C
program för PIC processorer. I ditt fall ska du så klart köra assembler,
i alla fall så länge som du håller på med de olika "Lessons" och innan du
börjar förstå hur en mikrokontroller (som t.ex en PIC) fungerar.

Du kan sluta omgående att tjata om Visual Basic, det har inte ett
smack med programmering av PIC att göra...

Däremot kan ditt PIC program kanske kommunisera med ett Visual Basic
program på en Windows maskin (över t.ex serieporten), men det är en
lite annan sak.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9086
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: PICkit 2 nybörjare

Inlägg av AndersG »

Jag har redan mplab, men är det svårare att programmera i mplab än VB?
OK. Först:

Du kan inte programmera en PIC I VB

OK. Så var det sagt :) Som du kanske kan läsa mellan raderna så är vissa av vi "gråskägg" på forumet måttligt imponerade av VB :) Men, VB är ett helt OK verktyg om det används till det det är avsett för, nämligen quickY&dirty prototyper i Windows.

Om du skriver ett enkelt program i BASIC:

Kod: Markera allt

10 Print "Bill Gates"
20 goto 10
Och sedan ser hur mycket kod som genereras och hur mycket totalt som behövs för att köra så inser du att det inte är något bra verktyg för att programmere mikrokontrollers. Då du jobbar med dessa har du ofta två begränsningar:

1. Minne
2. Hastighet

Dvs programmet måste vara litet nog för att rymmas i din PIC och kanske snabbt nog att hinna reagera på stimuli. Detta talar mot högnivåspråk. Dessutom tenderar högnivåspråk (som tex C och i någon mån BASIC) att "gömma" den underliggande hårdvaran. I fallet Windows är det bra, i fallet PIC illa.

Det viktiga är att du kan och förstår programmering, om du gör det kan du applicera det på godtyckligt språk. Om du absolut med våld måste programmera i BASIC så finns det Basicdialekter för PIC, men jag rekommenderar ändå att du börjar med Assembler, i MPLAB, Kör igenom dina PICKit lessons så tror jag att du förstår bättre hur en PIC fungerar.

Du kan även läsa denna, något föråldrade, guide:
http://www.covingtoninnovations.com/nop ... em2004.pdf

Personligen använder jag både Assembler och C, vilket beror helt enkelt på vad jag skall göra och med vilken PIC. Rätt verktyg för ändamålet. Svarv eller fräs?
H3MP4
Inlägg: 6
Blev medlem: 9 oktober 2010, 19:03:35

Re: PICkit 2 nybörjare

Inlägg av H3MP4 »

Jag la in en demo som följde med i PICkit 2 v2.5 men när jag skulle öppna den i PICkit 2 v2.5 står det att den är för stor. Hur ska jag skriva en egen kod i mplab för att LED lamporna i microchippet att lysa eller blinka?
#include <p16f887.inc>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V

cblock 0x20
Delay : 2 ; Assign two addresses to label Delay
Display ; define a variable to hold the diplay
Direction
LookingFor
endc

org 0x0000
STARTUP:
pagesel Main
goto Main

org 0x0004 ; interrupt vector location
; (not used)

Main:
SetupPinDirections:
banksel TRISA ; select Register Page 1
movlw 0xFF
movwf TRISA ; Make PortA all input
clrf TRISD ; Make PortD all output
SetupAnalogPins:
banksel ANSEL ; address Register Page 2
bsf STATUS,RP1
movlw 0x01 ; configure Port A pin 0 Analog
movwf ANSEL
movlw 0x00 ; remaining pins are all digital
movwf ANSELH
SetupA2D:
banksel ADCON1 ; address Register Page 1
movlw 0x00 ; A2D Left-Justified, references are VDD and VSS
movwf ADCON1
banksel ADCON0 ; address Register Page 0
movlw 0x41
movwf ADCON0 ; configure A2D for Fosc/8, Channel 0 (RA0), and turn on the A2D module
InitRegisters:
banksel Display
movlw 0x80
movwf Display
clrf Direction
clrf LookingFor ; Looking for a 0 on the button
MainLoop:
movf Display,w ; Copy the display to the LEDs
movwf PORTD
nop ; wait total of 5uS for A2D amp to settle and capacitor to charge.
nop ; wait 1uS
nop ; wait 1uS
nop ; wait 1uS
nop ; wait 1uS
bsf ADCON0,GO_DONE ; start conversion
btfsc ADCON0,GO_DONE ; this bit will change to zero when the conversion is complete
goto $-1
movf ADRESH,w ; Copy the A2D result to the delay loop
movwf Delay+1

A2DDelayLoop:
incfsz Delay,f ; Waste time.
goto A2DDelayLoop ; The Inner loop takes 3 instructions per loop * 256 loopss = 768 instructions
incfsz Delay+1,f ; The outer loop takes and additional 3 instructions per lap * 256 loops
goto A2DDelayLoop ; (768+3) * 256 = 197376 instructions / 1M instructions per second = 0.197 sec.
; call it a two-tenths of a second.

movlw .13 ; Delay another 10mS plus whatever was above
movwf Delay+1
TenmSdelay:
decfsz Delay,f
goto TenmSdelay
decfsz Delay+1,f
goto TenmSdelay

btfsc LookingFor,0
goto LookingFor1
LookingFor0:
btfsc PORTB,0 ; is the switch pressed (0)
goto Rotate
bsf LookingFor,0 ; yes Next we'll be looking for a 1
movlw 0xFF ; load the W register incase we need it
xorwf Direction,f ; yes, flip the direction bit
goto Rotate

LookingFor1:
btfsc PORTB,0 ; is the switch pressed (0)
bcf LookingFor,0

Rotate:
bcf STATUS,C ; ensure the carry bit is clear
btfss Direction,0
goto RotateLeft
RotateRight:
rrf Display,f
btfsc STATUS,C ; Did the bit rotate into the carry?
bsf Display,7 ; yes, put it into bit 3.

goto MainLoop
RotateLeft:
rlf Display,f
btfsc STATUS,C ; did it rotate out of the display
bsf Display,0 ; yes, put it into bit 0
goto MainLoop

end.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9086
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: PICkit 2 nybörjare

Inlägg av AndersG »

Men snälla du.... Har du alls läst dokumentationen? Det finns en getting started guide du bör läsa. Du kan inte öppna en assemblerfil i pickit2-programmet. Det enda du kan öppna där är en HEX-fil, dvs ett kompilerat program.

Sedan behöver du inte själva PICKIT-programmet i detta skede eftersom du kan göra allt från MPLAB. Har du laddat ned senaste MPLAB och installerat.?

Sedan ett tips: Använd code-taggar å du postar kod, typ:

Kod: Markera allt

#include <p16f887.inc>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V

cblock 0x20
Delay : 2 ; Assign two addresses to label Delay
Display ; define a variable to hold the diplay
Direction 
LookingFor 
endc
Vilket pickit-labbkort har du? Den med 16F690 eller den andra?
H3MP4
Inlägg: 6
Blev medlem: 9 oktober 2010, 19:03:35

Re: PICkit 2 nybörjare

Inlägg av H3MP4 »

Jag har PIC16F690.
PS. Jag är bara 13!
H3MP4
Inlägg: 6
Blev medlem: 9 oktober 2010, 19:03:35

Re: PICkit 2 nybörjare

Inlägg av H3MP4 »

Skulle någon kunna skicka en kod till hur man får lysdioderna att blinka?
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9086
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: PICkit 2 nybörjare

Inlägg av AndersG »

OK. OK. Men du är väl läskunnig :) När jag var 13 så sommarjobbade jag med att reparera TV-apparater :)

OK. Börja här:
http://www.covingtoninnovations.com/noppp/mplab.pdf

Eller steg för steg:
1. Ladda ned mplab från http://www.microchip.com (http://www.microchip.com/stellent/idcpl ... e=en023805)
2. Installera den
3. Ladda ned PicKit Lessons (http://ww1.microchip.com/downloads/en/D ... %20(b).zip)
4. Packa upp dem.
5. Starta MPLAB
6. File, Open Workspace, öppna HelloWorld.mcw (oftast i C:\PK2 Lessons\LPC Demo Board\01 Hello World)
7. Project, Build all
8. Kolla att resultatet ger "BUILD SUCCEEDED"
9. Anslut din PICKit
10. Programmer, select programmer, PICKIT2 och kolla
Initializing PICkit 2 version 0.0.3.63
Found PICkit 2 - Operating System Version 2.32.0
Target power not detected - Powering from PICkit 2 ( 5.00V)
PIC16F690 found (Rev 0x6)
PICkit 2 Ready
11. Programmer, program. Kolla att den programmerar och verifierar OK.
12. Programmer, set VDD on och Release from reset

Då borde programmet köra

Edit: 02 Blink är det som blinkar...
Skriv svar