Sida 1 av 1

Macro i PIC?

Postat: 7 september 2010, 09:10:14
av Johan.o
Hej,

Jag får inte ett macro jag vill använda att fungera i min PIC12F675.
Är det någon som vet hur jag ska göra?

som exempel kan vi ta ett väldigt enkelt macro:

Kod: Markera allt

TEST macro
		nop
		nop
		nop
		endm  

ska jag inte då bara behöva skriva TEST i min kod för att utföra dessa tre nop?
mitt macro har jag lagt i början av mitt program bland mina subrutiner.. Är det det som är felet?
Vart ska macrot läggas i programmet? jag provkör i MPLAB simulator, men där hoppar den bara förbi när den kommer till TEST i min kod.

Tacksam för hjälp!

Re: Macro i PIC?

Postat: 7 september 2010, 09:19:10
av sodjan
> ...att fungera i min PIC12F675

Ingen PIC vet vad ett "macro" är.
Ett macro är en finess i MPASM.
Ett macro "körs" aldrig av processorn.

> Vart ska macrot läggas i programmet?

RTFM, speciellt kapitlet om macron.

> men där hoppar den bara förbi

Ett macro ingår inte i själva programmet, det är
en definition som ligger innan din kod.

Ett macro är igen subrutin.

Re: Macro i PIC?

Postat: 7 september 2010, 09:35:31
av Johan.o
Ja, MPLAB ersätter bara min hänvisning till ett macro med den kod mitt macro innehåller, så längt är jag med.

Jag har läst TFM, och den säger före macrot används.

Jag la in 'movlw 0x10' i mitt macro, och tydligen körs faktiskt koden i mitt macro, men tyvärr så kör den koden direkt utan att jag kan stega igenom den i MPLAB simulator.
Surt, så mitt nuvarande problem blir att det blir svårt att avlusa ett macro, hittade ett macro för multiplikation på PICLIST. Som i sig använder sig av ett hjälpmacro.
Det blir svårt att titta närmare på om något går fel.

Tack för hjälpen till självhjälp, av någon anledning löser man alltid problemet själv om man bara ser till att posta en dum fråga här :roll:

Re: Macro i PIC?

Postat: 7 september 2010, 10:11:08
av Icecap
SIM kan uppfatta ett macro som "en instruktion" men man kan faktisk stega igenom ändå!

Kompilera projektet, stäng ner det och importera HEX-filen som du sedan kan stega igenom, dock alldeles utan kommentarer eller liknande.

Re: Macro i PIC?

Postat: 7 september 2010, 10:12:50
av sodjan
Din fråga gällde inte debugging/singelstep av macron i sig.
Det lät mer som att du inte riktigt hade klämm på vad ett macro är,
inte ovanligt, många tror att ett macro är något som processorn
förstår.

Hur som helst. Jag får vid en snabb test inte heller stegning genom
macron/macrot. Tänker inte gräva djupare i det, jag har svårt att
se det som ett större problem igentligen.

Re: Macro i PIC?

Postat: 7 september 2010, 10:46:07
av vfr
Jag har också stött på det. Jag har tolkat det så som Icecap beskriver.

Re: Macro i PIC?

Postat: 7 september 2010, 10:54:02
av sodjan
I det exempel som jag hade så hamnade MPSIM i början på en
subrutin som anropas från macrot. D.v.s att instruktionerna
som ligger drekt i macrot stegas inte, man eventuella CALL
från macrot följs.

Sen så är det väl normalt så att ett macro är debuggat och
"säkert" så det ska inte behöva inte stegas igenom igentligen.

Re: Macro i PIC?

Postat: 7 september 2010, 17:17:23
av Johan.o
Sodjan: Det har du rätt i. Koden fungerar bra så jag nöjer mig med att inte förstå hur den fungerar.
Jag känner att problemet är löst. Jag får tacka för alla svar! :)

Re: Macro i PIC?

Postat: 7 september 2010, 22:06:14
av bos
Stega i programkoden istället för källkoden så går det bra. View -> Program memory, ha det fönstret aktivt och stega med F7/F8 som vanligt och makrot exekveras rad för rad.