Newsgroup: it.hobby.elettronica.digitale
Titolo: Memory location

Ciao a tutti!
Avrei bisogno di una piccola informazione riguardo alla programmazione
assembly dei micro Atmel: nella programmazione assembly dei PIC si
poteva specificare la locazione di memoria attualmente puntata
riferendosi ad essa come $, quindi risultava comodo nei casi di bit test
passare alla locazione precedente usando $-1. Esiste una cosa del genere
anche per gli Atmel? Suppongo che dipenda dal compilatore, vero?
Grazie a chi mi da una mano!
Ciao!
-- 
Stefano M. (Italy)
WEB: 
http://www.lemming.it
Solo due cose sono infinite: l'universo e la stupidità umana
e non sono sicuro della prima.  (A. Einstein)

anche per gli Atmel? Suppongo che dipenda dal compilatore, vero?
Il program counter è riferito dal suffisso $ in tutti gli assemblatori.
Se vuoi fare un loop infimito puoi fare:
	Jmp	$
Un
	JR	 $+10
serve soprattutto nei µC con architettura di von Neumann come lo Z80 che
consentono di eseguire istruzioni anche in ram per avere routine rilocabili nei
programmi, mentre con µC ad architettura Harvard come gli AVR questa notazione
serve abbastanza a poco.
http://it.wikipedia.org/wiki/Categoria:Architettura_dei_calcolatori
--
ciao
  Stefano

 serve abbastanza a poco. 
Ciao!
Prima di tutto grazie per la risposta ed il chiarimento. Cerco di
spiegare quello che voglio fare: la mia idea è di creare una macro che
verifichi che il pulsante corrispondente ad una delle porte sia
rilasciato prima di procedere oltre, una cosa del tipo:
.MACRO      NOBUT
            SBRC     PORTB, BUTTON
            RJMP     $-1
.ENDMACRO
il problema è che se metto una label e poi uso la macro in più parti,
questa label verrebbe ripetuta uguale, dando origine ad un errore. E'
corretto il mio modo di ragionare?
Grazie ancora
ciao!


corretto il mio modo di ragionare?
E' corretto, solo che l'assembly presente nell' AvrStudio ha parecchie
limitazioni, tra cui quella di non poter inserire la direttiva LOCAL, oltre a
poter inserire IF ENDIF all'interno delle macro stesse
Per fare una macro cosě:
MACRO	 NOBUT
	LOCAL	BUT
BUT	SBRC	PORTB, BUTTON
	RJMP	BUT
ENDM
occorre usare un assembler-linker piů sofisticato come lo IAR.
Si trova una versione free dello IAR nel file IAR_ASM.ZIP, c'č anche la
documentazione, lo puoi scaricare qui:
http://www.avrfreaks.net/index.php?module=FreaksFiles&func=viewFiles&type=admin&startnum=1826
http://www.zmitac.aei.polsl.pl/Electronics_Firm_Docs/ATMEL/Atmel/prod203.htm
altrimenti devi usare RJMP, ma nella documentazione non č riconosciuta la
direttiva $, l'assembler dell AVRStudio č davvero molto limitato.
--
ciao
  Stefano

 poteva specificare la locazione di memoria attualmente puntata
Mi ricordavo bene, tu usavi i pic, posso chiederti cosa ti ha spinto ad
usare veri micro?

 usare veri micro? 
Ciao!
Diciamo che voglio tenere aperte più strade ed una di questa passa
sicuramente dai micro Amel. Questo non significa che abbandonerò i pic,
ma solo che voglio studiarmi e capire (bene se ci riesco) anche micro
"alternativi"; tra l'altro con il tuo intervento mi pare di capire che
li ritieni nettamente superiori ai pic, sbaglio?
Ciaooo

 direttiva $, l'assembler dell AVRStudio è davvero molto limitato. 
Mi guardo la documentazione dello IAR, anche se sfogliandola mi pare di
capire che è molto diversa, quidi dovrei riscrivere ancora il programma.
Per quanto riguarda la direttiva $ mi pare di capire che l'unica
possibilità è quella di provare se funge :-(
Vediamo che cosa riesco a combinare!
CIao e grazie ancora!


 Ciaooo
I pic sono solo porcherie per dilettanti, ti consiglio di non perdere
ulteriore tempo con l'assembler, passa al C

 programma.
Non � molto diversa, cambiano le direttive, invece di
    .ORG    0x100
basta mettere
    ORG    0x100
oppure
    ORG    100H
Per� c'� anche il linker, cosa molto comoda se devi fare programmi pi� 
complessi.
__
ciao
  Stefano

 ulteriore tempo con l'assembler, passa al C 
Ciao!
Ti ringrazio del consiglio, che terrò sicuramente in considerazione, il
dubbio principale che mi rimane sull'uso del C è che temo che un modesto
programmino (quale quello che ho in mente in questo momento), costi
molto spazio costringendomi a passare a micro di "taglia" superiore.
Ecco perchè non ho mai usato il C... Però ci provo, lo prometto :-D
Ciao e grazie!


 complessi. 
Grazie Stefano!
Ora studio un pochino e magari comincio anche con il C, come mi ha
consigliato F.Bertolazzi.
Ciao, grazie ancora!
