2 495
contributi
Nessun oggetto della modifica |
|||
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 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
E' importante adottare una buona '''strategia''' quando si va alla scoperta di chi è stato a interrompere su una linea condivisa: può darsi che alcuni dispositivi tendano a farlo più frequentemente ma servirli costa poco (si gesticono cioè velocemente), mentre altri lo fanno magari meno frequentemente ma servirli è oneroso (la loro ISR è molto pesante). Per aumentare l'efficienza, converrà servire per prima quelli che si '''accontentano di poco''' per poi passare a quelli che '''monopolizzano il processore'''.
|
contributi