NMI
© by Vittorio Crapella - i2viu
© by Vittorio Crapella - i2viu
Il tutto é nato come risposta ad un E-Mail
<< 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.>>
<<... il pin NMI é normalmente a livello 1 e in tali condizioni lasciagirare il programma normalmente , quando NMI passa a 0il programma che stava girando,ovunque si trova,sospende il suo lavoro e va a gestire la routine che viene messa fra eseguita questa routine dopo reti riprende l'esecuzioneda dove aveva lasciato il programma principale.......riconoscere quando va a 0 non é difficile mentre il vero problema ericonoscere 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 dellivello 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 retizero res 0,level ;metto level=0 ...... ;qui posso già fare quello che voglio ;abbinare al livello 0 retié la variabile che avrò definito per sapere il livello che devocontrollare 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.