da
WALTERmwp » 5 giu 2014, 23:35
No, non ho la presunzione di sottovalutare le domande ... sono le risposte che non dovrebbero, dal mio punto di vista, sconfinare nella presunzione.
Ma non è nemmeno il caso delle risposte che ti ho dato.
E' comprensibile, in generale, per lo scopo fondamentale che dovrebbe rivestire la routine di interrupt, una esecuzione il più rapida possibile della stessa.
Scritto questo (e immagino anche da altri, più competenti in materia, condiviso) tutto poi si determina in base alle esigenze applicative: reattività rispetto ad un determinato evento, azioni da compiere a seguito dell'insorgenza di un interrupt, processi o altre elaborazioni che rimangono in sospeso ...
Se non stai lavorando su un hardware multi-processore, il microcontrollore, o fa una cosa o ne fa un'altra per quanto tu possa ottimizzare la schedulazione dei "processi".
Se scrivi il tuo programma in assembler (o anche in assembler) percepisci in modo differente la sequenzialità delle operazioni rispetto ad un codice scritto con un linguaggio superiore, poi ovviamente dipende tutto dalla persona.
Questa, se vuoi puoi considerarla come una risposta ai tuoi dubbi che, ovviamente, da parte mia, non possono essere fugati con stime o tempistiche predefinite: non avrebbe senso.
Penso stia a te trovare il giusto equilibrio nella distribuzione delle risorse temporali e nel posizionamento, all'interno del programma, di una determinata elaborazione.
A volte, facendo considerazioni per eccesso si vedono le cose in maniera differente; per esempio, a seguito dell'intervento di un determinato interrupt, potresti anche decidere, una volta entrato nella routine, di non aggiornare i registri, mascherare tutti gli altri che avevi predisposto e fare partire un'elaborazione che dopo due giorni è ancora lì che sta "girando".
Insomma, i limiti li trovi tu.
Saluti
W - U.H.F.