Differenze tra le versioni di "Controllore di interruzioni programmabile"

Un '''vantaggio''' di un tale tipo di approccio è il fatto che si evita che un impulso spurio venga interpretato inavvertitamente come una richiesta di interruzione: se tale impulso è, come di solito capita, di breve durata allora esso non viene "sentito". Le interruzioni sul livello, pertanto, sono più robuste rispetto a quelle sul fronte in presenza di linee rumorose per questa loro capacità di filtrare i segnali spuri.
 
Molti dispositivi possono '''condividere''' una linea di interruzione sul livello se sono opportunamente progettati. La linea deve avere un '''[[resistore]]''' di pull-down o di pull-up così da tenere il segnale, in condizioni di riposo, rispettivamente basso oppure alto (stato quindi non attivo, ossia di non richiesta di interruzione). Quando uno o anche più dispositivi vogliono interrompere, attivano la linea, ossia la portano, rispettivamente, al livello alto oppure basso e la mantengono così, come già detto, '''per tutto il tempo''', fino a quando viene detto al dispositivo interrompente che la sua ISR è stata eseguita e che quindi può smettere di tenere attiva la linea.
 
Quando la linea di interruzione condivisa da più dispositivi viene attivata, bisogna scoprire chi è stato a farlo. Una volta servito il dispositivo interrompente e richiestogli di smettere di tenere attivare la linea, può succedere che quest'ultima ritorni al suo stato inattivo, di riposo, o che continui ad essere attiva. Nel primo caso significa che una volta servito il dispositivo interrompente non ce n'erano altri che richiedevano attenzione. Nel secondo caso significa che un altro dispositivo ha cominciato a richiedere attenzione, ma si stava servendo il dispositivo precedente: bisogna di nuovo scoprire chi altro ha richiesto l'interruzione. Una volta servito, il discorso si ripete.
2 486

contributi