Intanto grazie a tutti per le risposte.
Quello che sto facendo è una attrezzatura per testare dei quadri elettrici.
Tanto per spiegarvi le cose:
Inizialmente con arduino alla pressione di un tasto "START" do 220 al quadro e controllo che ci siano e siano corrette 5 basse tensioni presenti sul quadro;
a questo punto utilizzo 22 uscite di arduino ( che simulano interruttori e pulsanti ) e 9 ingressi ( che simulano elettrovalvole, lampade ecc) .
In 25 passi imposto varie combinazioni di uscite e mi aspetto altrettante combinazioni di ingressi.
Fin qui tutto ok.
Quello che volevo fare io a questo punto è:
Se per caso durante il test qualche cosa non va, in qualsiasi passo mi trovi ( fumate varie ecc) premendo il pulsante ""Emergenza"" collegato al pin 2 di arduino, quindi come segnale di interrupt, il programma deve passare subito ( quindi non posso mettere il controllo di un ingresso generico) ad una funzione ( che casualmente ho chiamato emergenza() ) che stacchi il 220volt e setti le uscite in una sequenza stabilita.
Fatto questo nasce il mio problema.
Appena eseguita la funzione il programma tornerebbe ad eseguire i passi rimanenti il che non avrebbe senso, il programma dovrebbe invece ripartire dall'inizio ed attendere la pressione del pulsante start.
Le soluzioni proposte sono altrettanto valide,
potrei inserire una variabile settata dall'interupt, ed eseguire la sua verifica durante il programma.
Ma eseguita la funzione emergenza() il programma tornerebbe ad essere eseguito fino al successivo punto di controllo della variabile,
Oppure potrei inserire jmp $0000 che mi resetterebbe tutto, tanto non c'è nessuna variabile da ricordare, ma non vorrei che durante il reset le uscite si settassero a caso ....
Aspetto fiducioso .....
Xzero2