Re: PIC e macro

Jul 10, 2003 11 Replies

"Ila" ha scritto



Qualcuno sa come utilizzare le macro con mpasm?

si


Ho dichiarato una macro e il programma compila... ma quando il
> pic dovrebbe eseguirla la salta... e continua l'esecuzione!

il salto potrebbe essere solo apparente, qualche riga di codice sarebbe stata di aiuto


Grazie a chi saprà darmi un consiglio

Adesso cerco di ripristinare parte del sito che mi e' stato segato da xoom... provo a mettere qualcosa su supereva (che ta l'altro e' ancora libera dallo spy applet di Red Sheriff)


formatting link


cerca sotto potenziamento assembler


Claudio F


"Ila" ha scritto

si, il sito comprendeva anche altre cose, quella dei pic e' una delle sezioni che ho scritto mentre imparavo per fissarmi bene le idee e condividerle.

Claudio F

Il giorno Thu, 10 Jul 2003 16:38:10 GMT, "Claudio F" ha scritto:

[...]

???

Di che si tratta?

Il giorno Thu, 10 Jul 2003 12:53:43 GMT, "Ila" ha scritto:

Se apri la finestra di disassembling puoi seguire il flusso del programma anche all'interno delle macro.

Bhe, allora complimenti! Il sito è ricco di utili informazioni; inoltre il programmatore che uso è quello descritto da te e funziona veramente bene. Anche se nn ho capito xchè colleghi solo il pin 25 della lpt a terra... io ho preferito collegare a terra [18..25]

Negli ultimi tempi sto facendo esperienza con le macro... ma ho visto che rubano un sacco di spazio... Credo che la soluzione migliore sia utilizzare delle call, solo che poi nn c'è modi di passargli dei parametri direttamente Attualmente mi trovo di fronte a 2 problemi: passare una stringa come parametro ad una macro (e poi anche riuscire a scorrerla per scrivere su un lcd) e gestire la direttiva INCLUDE per mettere tutte le macro attinenti in un file. Se hai qualche consiglio in merito è ben accetto...

Per ora grazie di tutto Ciao

Io uso spesso una macro "callW" che chiama una routine come una call normale ma con un valore in W. La macro è questa:

callW MACRO addr,val movlw val call addr ENDM

Ad esempio: callW ritardo,87 (chiama la routine ritardo con 87 in W)

Se hai un file "miemacro.inc" in documenti dove hai tutte le macro puoi scrivere:

include "c:\documenti\miemacro.inc"

Spero di esserti stato utile...

Ciao Fil

questo articolo e` stato inviato via web dal servizio gratuito http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it

"Luigi C." ha scritto

formatting link

In sostanza aprendo una pagina web viene caricato un applet che da quel momento "misura" la tua attivita' sul web, dove vai, quanto stai ecc... e rimane attivo finche' non si chiude il browser. Apri per esempio

formatting link
e guarda l'HTML, in fondo c'e' la sezione:

Ufficialamente e' una raccolta dati aggregati a fini statistici, commerciali e di "potenziamento della rete a favore dell'utente" dai quali non si dovrebbe poter risalire a chi fa che cosa... resta il fatto che adesso le pagine tin, virgilio, repubblica, xoom mi sono diventate antipatiche...

L'ho scoperto perche' mi si continuava ad aprire la console dell'attivita' java, e ho notato dei poco piacevoli "record sent" ad ogni click del mouse su qualche link... mi pare strano che non ne sappia niente nessuno, compresi alcuni colleghi che bazzicano in rete molto piu' di me.

Claudio F

Le macro posso dichiarale dove voglio? Non so... ma mi danno alcuni problemi nonostante il programma compili

Ti copio/incollo l'inizio dei miei listati per Pic (filippo.inc è il file con tutte le mie macro):

PROCESSOR 16F84 RADIX DEC INCLUDE "P16F84.INC" Include "c:\documenti\filippo.inc" __CONFIG 3FF1h ERRORLEVEL -302

E' da un po' che uso le macro (dopo aver visto il sito di Claudio F) e le ritengo molto comode anche se spesso allungano il programma anche se agli occhi del programmatore sembra il contrario. L'errore più frequente che mi capita di fare quando uso le macro è usarne una dopo un'istruzione di salto come btfss o btfsc: infatti viene saltata solo la prima riga della macro e quindi si ottengono effetti imprevedibili. Ad esempio, se hai la macro:

miamacro MACRO val riga1 riga2 riga3 ENDM

e scrivi:

btfss status,Z miamacro

se Z è 1 non viene saltata TUTTA la macro ma solo la riga1.

Ciao FIl

questo articolo e` stato inviato via web dal servizio gratuito http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it

"Fil" ha scritto

Infatti le macro non servono per accorciare il programma, ma per scrivere in forma abbreviata/comoda/flessibile un gruppo di istruzioni che dovrebbero comunque essere scritte in quel punto. Volerle usare o considerare come sottoprogrammi e' un po'improprio.

Claudio F

Grazie 1000! Un errore lo commettevo sicuramente dove mi hai messo in guardia tu!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required