Logo del sito i2viu

UN USO INSOLITO DI NMI
© by Vittorio Crapella - i2viu

Il tutto é nato come risposta ad un E-Mail

La richiesta era:

<< Realizzando un progetto elettronico con un ST62 della Thomson sono "incappato" in un piccolo problema: quale è l' indirizzo di memoria da cui posso leggere lo stato del piedino di interrupt NMI? voglio precisare che non mi interessa controllare il fronte di discesa o di salita di tale ingresso, ma il suo stato (1 o 0) per motivi un po' lunghi da spiegare nella presente.>>

La risposta fu:

<<... il pin NMI é normalmente a livello 1 e in tali condizioni lascia
girare il programma normalmente , quando NMI passa a 0
il programma che stava girando,ovunque si trova,
sospende il suo lavoro e va a gestire la routine che viene messa fra 

nmi_int e reti

eseguita questa routine dopo reti riprende l'esecuzione
da dove aveva lasciato il programma principale.......
riconoscere quando va a 0 non é difficile mentre il vero problema e
riconoscere quando ritorna a 1 ....il trucco forse c'é e consiste 
nel mettere una porta XNOR come nell'allegato nmi.gif che invio
...ottenendo un impulso verso 0 per ogni fronte del
livello da controllare e nella routine dell'nmi_int mettere quanto segue:

nmi_int  
	jrs 	0,level,zero	;se level=1 allora salto a zero
	set	0,level		;altrimenti era 0 pertanto level=1
	......                          ;qui posso già fare quello che voglio 
                                           ;abbinare  al livello 1
	reti
zero	res	0,level		;metto level=0
	......                          ;qui posso già fare quello che voglio 
                                           ;abbinare al livello  0
	reti

level

é la variabile che avrò definito per sapere il livello che devo
controllare attraverso NMI nell'inizzializzazione del programma si predisporrà
 level=1 che andrà a 0 , al primo scendere a 0 di NMI cioè del livello che devo controllare
...quando questo tornerà a 1 avrò un altro impulso di NMI cosi nella routine cambierò 
stato a level ricordando che é tornato a 1.

Non lo provato perché lo inventato intanto che ti scrivevo ma dovrebbe andare.>>

Non lo ancora verificato, che ne dite potrà funzionare ????

nmi.gif-3Kb

 [ return ]       [Le mie pagine]