PICkit 2 nybörjare
PICkit 2 nybörjare
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.
Re: PICkit 2 nybörjare
Nej!
Och många här vet hur man styr en massa saker med mikroprocessorer.
Och många här vet hur man styr en massa saker med mikroprocessorer.
Re: PICkit 2 nybörjare
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.
Re: PICkit 2 nybörjare
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?
Re: PICkit 2 nybörjare
MPlab är nog att rekommendera. Men det är möjligt att notepad++ funkar det med det har stöd för en hel del.
Re: PICkit 2 nybörjare
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.
Re: PICkit 2 nybörjare
Jag har redan mplab, men är det svårare att programmera i mplab än VB?
Re: PICkit 2 nybörjare
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.
Ska du programmera PIC så är det det lättaste sättet.
Re: PICkit 2 nybörjare
> ...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.
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.
Re: PICkit 2 nybörjare
OK. Först:Jag har redan mplab, men är det svårare att programmera i mplab än VB?
Du kan inte programmera en PIC I VB
OK. Så var det sagt


Om du skriver ett enkelt program i BASIC:
Kod: Markera allt
10 Print "Bill Gates"
20 goto 10
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?
Re: PICkit 2 nybörjare
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.
#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.
Re: PICkit 2 nybörjare
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:
Vilket pickit-labbkort har du? Den med 16F690 eller den andra?
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
Re: PICkit 2 nybörjare
Skulle någon kunna skicka en kod till hur man får lysdioderna att blinka?
Re: PICkit 2 nybörjare
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
12. Programmer, set VDD on och Release from reset
Då borde programmet köra
Edit: 02 Blink är det som blinkar...


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
11. Programmer, program. Kolla att den programmerar och verifierar OK.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
12. Programmer, set VDD on och Release from reset
Då borde programmet köra
Edit: 02 Blink är det som blinkar...