PICKit2 lektion nr 1
PICKit2 lektion nr 1
Hej.
Har nu suttit ett par kväll och funderat vilket språk jag skall använda till min PICKit2, och har bestämt mig för att nyttja assembler.
Allt detta är hibreiska för mig dessvärre, men ger mig inte i första stund. Dock skulle jag behöver lite hjälp för att komma igång.
Jag tar det ifrån början. Förklara gärna i all enkelhet vad bsf, bcf, movlw och movwf står för?
Vi börjar med detta sålänge.
Har nu suttit ett par kväll och funderat vilket språk jag skall använda till min PICKit2, och har bestämt mig för att nyttja assembler.
Allt detta är hibreiska för mig dessvärre, men ger mig inte i första stund. Dock skulle jag behöver lite hjälp för att komma igång.
Jag tar det ifrån början. Förklara gärna i all enkelhet vad bsf, bcf, movlw och movwf står för?
Vi börjar med detta sålänge.
> vilket språk jag skall använda till min PICKit2,
Först, du använder inget språk alls *till* en PICKit2.
Det språk du använder, används för att skriva applikationer
till en PIC processor. PICKit2 ser bara till att det kommer över
till din processor, den bryr sig inte (och vet inte) vilket språk som
koden var skriven i.
> Förklara gärna i all enkelhet vad bsf, bcf, movlw och movwf står för?
Finns ju absolut ingen som helst anledning att förklara det *HÄR*.
Det finns utmärkta beskrivningar av alla instruktioner, dels
i varje datablad, dels i den (i mitt tycke) lite bättre Reference Manual.
T.ex för Midrange (d.v.s PIC16 serien) :
http://ww1.microchip.com/downloads/en/D ... 31029a.pdf
Det finns förövrigt en del annat nyttigt i hela Midrange manualen:
http://ww1.microchip.com/downloads/en/D ... 33023a.pdf
speciellt "intro" delarna i början, section 1-6 och 9. Det övriga
är mindre viktigt (i början). Notera dock att Ref manualen inte riktigt
har hängt med de allra senaste PIC modellerna, så kolla gärna mot
databladet också till den processor som du tänker använda.
> Vi börjar med detta sålänge.
Vilka "vi" ?
Det är du som ska börja...
Först, du använder inget språk alls *till* en PICKit2.
Det språk du använder, används för att skriva applikationer
till en PIC processor. PICKit2 ser bara till att det kommer över
till din processor, den bryr sig inte (och vet inte) vilket språk som
koden var skriven i.
> Förklara gärna i all enkelhet vad bsf, bcf, movlw och movwf står för?
Finns ju absolut ingen som helst anledning att förklara det *HÄR*.
Det finns utmärkta beskrivningar av alla instruktioner, dels
i varje datablad, dels i den (i mitt tycke) lite bättre Reference Manual.
T.ex för Midrange (d.v.s PIC16 serien) :
http://ww1.microchip.com/downloads/en/D ... 31029a.pdf
Det finns förövrigt en del annat nyttigt i hela Midrange manualen:
http://ww1.microchip.com/downloads/en/D ... 33023a.pdf
speciellt "intro" delarna i början, section 1-6 och 9. Det övriga
är mindre viktigt (i början). Notera dock att Ref manualen inte riktigt
har hängt med de allra senaste PIC modellerna, så kolla gärna mot
databladet också till den processor som du tänker använda.
> Vi börjar med detta sålänge.
Vilka "vi" ?

Det är du som ska börja...
1:a Träffen på Google, "Pic assembler pdf" http://www.covingtoninnovations.com/nop ... em2004.pdf
Verkar bra...
Sodjan kommer säkert in och förklarar vidare... eller visar vart det finns dom här... vad är det nu de heter? Dat... hmm... "Datablad" eller liknande
EDIT: Damnt it! Han är snabber han...
Verkar bra...
Sodjan kommer säkert in och förklarar vidare... eller visar vart det finns dom här... vad är det nu de heter? Dat... hmm... "Datablad" eller liknande

EDIT: Damnt it! Han är snabber han...

jo
bsf står för bit set file.
bsf register,bit ;så vitt jag mins var ett tag sedan jag gick över till C istället. Detta kommandot är din nya bästa vän typ för att ställa inställningar också vidare.
vilket betyder att du ställer en bit till 1
ex om du har ett register som heter inställningar och du vill sätta den 4:e biten till 1 för att aktivera en inställning så gör du
bsf inställningar,4
bcf är samma fast det är bit clear file så du ställer en bit i ett register till 0
movlw använder du när du vill mata W registret med ett värde som du vill ha in i ett filregister ex om du har en variabel i ram defenierad
så kan du
movlw 13'D' ;är inte hundra på att det är såhär man skriver ett decimalt tal men har för mig jag mins rätt att D ska vara inom kolon kolla hjälpen i mplab så ser du.
sedan använder du movwf för att flytta vad du har lagrat i W till fil registret i detta fallet någon variabel du defenierat i ram.
hoppas du förstår något av det jag skrivit. jag är lite ringrostig på pic asm dessutom.
MVH
bsf står för bit set file.
bsf register,bit ;så vitt jag mins var ett tag sedan jag gick över till C istället. Detta kommandot är din nya bästa vän typ för att ställa inställningar också vidare.
vilket betyder att du ställer en bit till 1
ex om du har ett register som heter inställningar och du vill sätta den 4:e biten till 1 för att aktivera en inställning så gör du
bsf inställningar,4
bcf är samma fast det är bit clear file så du ställer en bit i ett register till 0
movlw använder du när du vill mata W registret med ett värde som du vill ha in i ett filregister ex om du har en variabel i ram defenierad
så kan du
movlw 13'D' ;är inte hundra på att det är såhär man skriver ett decimalt tal men har för mig jag mins rätt att D ska vara inom kolon kolla hjälpen i mplab så ser du.
sedan använder du movwf för att flytta vad du har lagrat i W till fil registret i detta fallet någon variabel du defenierat i ram.
hoppas du förstår något av det jag skrivit. jag är lite ringrostig på pic asm dessutom.
MVH
Senast redigerad av eAk 10 september 2008, 23:20:45, redigerad totalt 1 gång.
eAk,
Jag tror att jag kan PIC assembler hyggligt, men jag har ändå lite svårt
att hänga med i det du skriver. Det är mycket möjligt att även du
kan PIC assembler, men du har mycket att träna på att skriva
tydligt och lättläst.
Stor bokstav, interpunktur o.s.v kanske känns lite tråkigt för
"SMS-generationen", men resultatet ser ut som *SKIT* och det är
fullständigt bortkastat att försöka förklara något med något som
knappt går att läsa...
PDF'en i MiSTers inlägg ser ju ganska OK ut, men den är nästan 10
år gammal. Tyvärr är det så med mycket info på nätet, och det är
inte alltid lika tydligt som i detta fall där det står på första sidan.
Men, annars så såg den ganska OK ut.
Jag tror att jag kan PIC assembler hyggligt, men jag har ändå lite svårt
att hänga med i det du skriver. Det är mycket möjligt att även du
kan PIC assembler, men du har mycket att träna på att skriva
tydligt och lättläst.
Stor bokstav, interpunktur o.s.v kanske känns lite tråkigt för
"SMS-generationen", men resultatet ser ut som *SKIT* och det är
fullständigt bortkastat att försöka förklara något med något som
knappt går att läsa...
PDF'en i MiSTers inlägg ser ju ganska OK ut, men den är nästan 10
år gammal. Tyvärr är det så med mycket info på nätet, och det är
inte alltid lika tydligt som i detta fall där det står på första sidan.
Men, annars så såg den ganska OK ut.
Tack för ert svar.
Men att hänvisa mig till en massa olika datablad funkar inte för mig då jag inte har någon som helst praktisk uppfattning om den teoretiska funktionen än.
Hur skriver jag till i koden nedan för att få följande funktion. Det sitter en brytare på pickit2 exprementkortet, och jag vill att om man använder den skall man kunna sätta på och stänga om LED.
Men att hänvisa mig till en massa olika datablad funkar inte för mig då jag inte har någon som helst praktisk uppfattning om den teoretiska funktionen än.
Hur skriver jag till i koden nedan för att få följande funktion. Det sitter en brytare på pickit2 exprementkortet, och jag vill att om man använder den skall man kunna sätta på och stänga om LED.
Kod: Markera allt
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
org 0
Start:
bsf STATUS,RP0 ; select Register Page 1
bcf TRISC,0 ; make IO Pin C0 an output
bcf STATUS,RP0 ; back to Register Page 0
bsf PORTC,0 ; turn on LED C0 (DS1)
goto $ ; wait here
end
> Tack för ert svar.
För all del !
Vad är problemet med koden du visade ?
Är det din kod ? Och är allt helt klart över hur den fungerar ?
Vill du att den ska ändras ? Det är ju bara att sätta igång och testa.
Men först måste du förstå koden så som du postade den, om du inte
förstår den, så är det ju inte lätt att ändra den heller. Om du har
några frågor kring den, så fråga på bara!
*MEN*, fråga inte "vad gör BCF" en gång till, det finns som sagt
tydligt beskrivet redan...
Du kan knappast räkna med att få de övergripande svaren här, de
får du "läsa in" på annat sätt. Men om det är några *detaljer* som
är oklara, så fråga på bara.
> ...då jag inte har någon som helst praktisk uppfattning om den teoretiska funktionen än.
Det är det som databladen är till för...
För all del !
Vad är problemet med koden du visade ?
Är det din kod ? Och är allt helt klart över hur den fungerar ?
Vill du att den ska ändras ? Det är ju bara att sätta igång och testa.
Men först måste du förstå koden så som du postade den, om du inte
förstår den, så är det ju inte lätt att ändra den heller. Om du har
några frågor kring den, så fråga på bara!
*MEN*, fråga inte "vad gör BCF" en gång till, det finns som sagt
tydligt beskrivet redan...
Du kan knappast räkna med att få de övergripande svaren här, de
får du "läsa in" på annat sätt. Men om det är några *detaljer* som
är oklara, så fråga på bara.
> ...då jag inte har någon som helst praktisk uppfattning om den teoretiska funktionen än.
Det är det som databladen är till för...
Jag har faktiskt aldrig använt en knapp.
men skulle jag göra ett sådant program skulle jag göra en loop som kollar om benet är satt till 1/0 och sätta benet till dioden till 1/0 beroende på resultatet.
när jag började med sådanthär hittade jag en jätte bra nybörjar tutorial.
ska försöka hitta den länken åt dig.
men skulle jag göra ett sådant program skulle jag göra en loop som kollar om benet är satt till 1/0 och sätta benet till dioden till 1/0 beroende på resultatet.
när jag började med sådanthär hittade jag en jätte bra nybörjar tutorial.
ska försöka hitta den länken åt dig.
http://www.mstracey.btinternet.co.uk/pi ... icmain.htm
där har du länken.
det är inte samma processor men läser du igenom databledet sammtidigt som du går igenom lektionerna så kommer du hitta vad du behöver göra annorlunda i din prosessor mot vad som är gjort i lektionen.
Det handlar mest om att ändra till en annan bank och välja andra io portar.
och anpassa efter schemat på hur din pickit 2 demo board är kopplad.
där har du länken.
det är inte samma processor men läser du igenom databledet sammtidigt som du går igenom lektionerna så kommer du hitta vad du behöver göra annorlunda i din prosessor mot vad som är gjort i lektionen.
Det handlar mest om att ändra till en annan bank och välja andra io portar.
och anpassa efter schemat på hur din pickit 2 demo board är kopplad.
Det är inget problem med koden i helhet. Den fungerar och LED lyser som den skall göra.
Nej det är inte min kod, utan är tagen från den första lektionen som medföljde PICKit2 packetet.
Jag har bildat en hjälplig uppfattning vad koden utför.
Svar Jesus Adam, jag vill ändra denna kod så att jag kan sätta på och stänga av LED med hjälp av störmbrytaren.
"Om du har några frågor kring den, så fråga på bara!"
Hur kommer det sig att inte LED nr 2 vill tändas om jag lägger till denna rad?
Nej det är inte min kod, utan är tagen från den första lektionen som medföljde PICKit2 packetet.
Jag har bildat en hjälplig uppfattning vad koden utför.
Svar Jesus Adam, jag vill ändra denna kod så att jag kan sätta på och stänga av LED med hjälp av störmbrytaren.
"Om du har några frågor kring den, så fråga på bara!"
Hur kommer det sig att inte LED nr 2 vill tändas om jag lägger till denna rad?
Kod: Markera allt
bcf TRISC,1 ; make IO Pin C0 an output
bsf PORTC,1 ; turn on LED C1 (DS2)
> http://www.mstracey.btinternet.co.uk/pi ... icmain.htm
Snyggt uppställt och designat, men han har gjort en dundertabbe som
gör att all kod ser ut som skit och lär ut dåliga programmeringsvanor.
Han har inte gjort include på device-filen...
Snyggt uppställt och designat, men han har gjort en dundertabbe som
gör att all kod ser ut som skit och lär ut dåliga programmeringsvanor.
Han har inte gjort include på device-filen...