Sida 1 av 1
Assembler
Postat: 5 december 2006, 22:38:04
av mulle
Hej alla, första inlägget här på forumet

Jag är nybörjare på PIC och undrar om någon har någon bra sida med ingående info om alla kommandon och så vidare till ASM?
Jag har läst runt en del, och som jag förstår det så verkar dom flesta eniga om att det är bäst att lära sig ASM först om man vill lära sig hur en PIC fungerar internt (om man nu kan säga så?) och det är det jag är ute efter. Först när jag började med PIC (är väl kanske en sådär 1-2 kanske 3 veckor sen, hehe) så började jag med en BASIC kompilator (PicBasic Pro) men YTTERST ytligt, och sedan efter det hittade jag detta forum och bestämde mig ganska fort för att lägga ner BASIC, hehe.
Jaja, kort och gott vet någon nån bra tex PDF med ganska ingående info om vad allt betyder? Förstår att det blir en ofantlig mängd med fakta, men det "inre lärdom" om en PIC jag är ute efter, jag vill inte börja med att programmera en tempmätare med D/A omvandlare med display på en LCD direkt, utan typ blinka en LED till att börja med.
Postat: 5 december 2006, 22:41:14
av björn
"Allt" om kommandon står i databladet(gjorde iallafall när jag använde PIC

). Annars finns det länkar till PIC-relaterade sidor i Wikin under microcontrollers.
Lycka till.
Postat: 5 december 2006, 22:47:12
av RasmusB
Microchips datablad är oftast väldigt bra!
Om du bara vill börja med att blinka en lampa, så rekommenderar jag att du börjar med att leta upp ett kodexempel, och sen går igenom programmet rad för rad med hjälp av databladet. När du förstått hur programmet funkar så är det bara att gå vidare och bygga på med egna idéer
Ha det så skoj!

Postat: 5 december 2006, 22:47:39
av mulle
Det var ett snabbt svar

Jag har tankat alla PDFar från Microchip till MPLAB (till och med på kinesiska, haha), men jag måste säga att jag tycker inte att dom ger särskilt detaljerade förklaringar till kommandona, vissa står det väldigt utförligt till, men dom flesta har dom bara slängt in i en lista där det står t.ex.
Directive Description Syntax
#DEFINE Define text #define <name>
substituition [[(<arg>,...,<arg>(]<value>]
Jag blir inte så klok på det där
EDIT:
Det var en bra idé RasmusB

Ska börja kika runt efter någon bra exempelkod

Postat: 5 december 2006, 22:54:05
av RasmusB
Well, nej... MPLAB-pdf:erna är ju bra om du vill lära dig allt om MPLAB. Men för att lära dig hur assemblerkoden fungerar så behöver du ett datablad till en mikrocontroller.
Har du t.ex. hittat kod till en PIC18F452 så ska du ladda hem databladet till den...

Postat: 5 december 2006, 22:56:37
av björn
Kommandobeskrivningarna står i PIC-kretsens datablad. Hur pass mycket kunskap har du i digitalteknik (tex bitoperationer)?
EDIT: Jag var för långsam

Postat: 5 december 2006, 23:32:16
av sodjan
Alla datablad har en (snabb) genomgong av rellevanta kommandon.
Kapitlet "Instruction Set" i "Reference Manual" har en utförligare genomgång med fler exempel.
Sen är det bara att läsa kod, kolla mot datablad (och ev Ref Manual), och
(om inget annat hjälper) fråga här
Datablad hittar du under varje individuell processor.
Ref Manualerna hittar du under "Products" -> "8-bit PIC Microcontrollers" -> "Reference Manuals".
T.ex för PIC16xxx :
"Instruction Set - PICmicro Mid-Range MCU Family"
http://ww1.microchip.com/downloads/en/D ... 31029a.pdf
Motsvarande för PIC18xxx :
"Complete PIC18C Reference Manual"
http://ww1.microchip.com/downloads/en/D ... 39500a.pdf
Postat: 6 december 2006, 03:10:39
av mulle
björn:
Jag har hittat en jättebra som beskriver funktioner på riktigt dummyspråk, som passar bra för mig för tillfället i alla fall

Som t.ex:
BSF 03h,5
The BSF Means Bit Set F. The letter F means that we are going to use a memory location, or register. We are using two numbers after this instruction 03h, which is the STATUS register address, and the number 5 which corresponds to the bit number. So, what we are saying is Set bit 5 in address 03h to 1.
Jag har läst digitalteknik A och B på gymnasie med MVG i båda kurserna, så grunderna finns där, men då var det ju ett tag sen också
sodjan:
Den där Ref Manualen har jag inte hittat förut(?). Den verkar vara bra! Men det är ändå lite för många "konstiga" ord för mig än så länge, men innan veckan är slut ska jag ha läst igenom den där tror jag

Och här i forumet har man alltid förstaklassig hjälp, det märker man fort

Postat: 6 december 2006, 10:48:47
av sodjan
Den där "beskrivningen" av BSF är kass !!
> The letter F means that we are going to use a memory location, or register.
Helt fel !!
Microchips dokument har rätt svar...
> 03h, which is the STATUS register address,
Ja men *skriv* "STATUS" då !!
> and the number 5 which corresponds to the bit number.
Vilket säkert har en färdig definition som *SKA* användas.
Så instruktionen *SKA* skrivas : "BCF STATUS, RP0", och inget annat.
Dessutom ska man inte manipulera RP0/RP1 bitarna på det sättet, utan
använda BANKSEL istället, vilket är säkrare och lättare att läsa.
Om resten av det du hittade är lika dåligt (vet jag inte eftersom du "glömde"
att ange en länk) så är det inte mycket att ha...
Postat: 6 december 2006, 22:24:28
av mulle
Hahahaha, det var det jävligaste! Sitter han och lär mig fel som jag tyckte var så bra :\ BANKSEL nämner han aldrig, bara att man ska sätta STATUS till nolla och etta.
Kan du inte ta och spåna igenom tutorialen och se om den är värd att läsa?
Länk:
http://www.hobbyprojects.com/pic_tutori ... rial1.html
Bäst att jag kör efter din metod sodjan, för det du skrev kände jag igen från kodexempel men inget av det jag har läst på den där länken. Men den killen lärde mig en sak som (jag tror?) är bra iallafall, varför man byter bank

Hehe, tack för att du sa att det stod "fel" sodjan

Postat: 6 december 2006, 23:24:44
av sodjan
OK, har kollat lite.
Notera att alla exempel är för PIC16F84A, en idag helt utdöd modell. Ingen
*börjar* att utveckla eller lära sig på den idag.
Det betyder inte att det som står där är fel, bara att du sannolikt inte kommer
att använda koden *exakt* som den står. Samt att en del av examplen skulle
man lösa helt annorlunda (t.ex har alla modernare PICs mer timer resurser
än F84A).
Som sagt så använder han inte INC filer, ingen gör så idag.
Men visst kan man läsa den. Och gärna några andra. T.ex :
http://www.amqrp.org/elmer160/lessons/ som i och för sig också använder 16F84A,
men överlag är lite modernare i sitt upplägg.
Postat: 6 december 2006, 23:33:08
av mulle
Sheit, den där verkar ju ännu mer beskrivande och rätt beskriven skulle jag chansa på ;p
Att den är gammal, det vet jag, men jag sitter och försöker att kopiera koden i det mesta jag lär mig, fast anpassa koden efter antingen 16F628A eller 16F877A, dom PICarna som jag har för tillfället. Den där länken verkar vara tidskrävande men lärorik, ska gnata mig igenom den och fler om jag hittar

Tack för all hjälp!
