Assembler

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
mulle
Inlägg: 8
Blev medlem: 28 november 2006, 16:43:18
Ort: Boden

Assembler

Inlägg 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.
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg 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.
Användarvisningsbild
RasmusB
Inlägg: 1006
Blev medlem: 24 augusti 2006, 23:32:13
Ort: Södertälje

Inlägg 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! :)
mulle
Inlägg: 8
Blev medlem: 28 november 2006, 16:43:18
Ort: Boden

Inlägg 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 :-p


EDIT:
Det var en bra idé RasmusB :) Ska börja kika runt efter någon bra exempelkod :)
Användarvisningsbild
RasmusB
Inlägg: 1006
Blev medlem: 24 augusti 2006, 23:32:13
Ort: Södertälje

Inlägg 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... :)
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg 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 :(
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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
mulle
Inlägg: 8
Blev medlem: 28 november 2006, 16:43:18
Ort: Boden

Inlägg 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 :)
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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...
mulle
Inlägg: 8
Blev medlem: 28 november 2006, 16:43:18
Ort: Boden

Inlägg 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 :p
Hehe, tack för att du sa att det stod "fel" sodjan :)
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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.
mulle
Inlägg: 8
Blev medlem: 28 november 2006, 16:43:18
Ort: Boden

Inlägg 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! :D
Skriv svar