|
 |
Procedure Seriali |
SetInt0C - Fasi preliminari 3/6
[193 di 403] |
- Gestione degli eventi seriali con la Tecnica dell'Interruzione |
|
5.2
Procedura SetInt0C:
abilitazione eventi
autorizzati ad interrompere [3 di 6] |
 | Di fatto è ora necessario
intervenire sul
Registro
di Abilitazione delle Interruzioni
[port_9]
per abilitare solo
gli
eventi seriali autorizzati a
interrompere; la tabella mostra i bit e
le priorità ad essi associati, da
predisporre a 1 logico (è necessario
porre a
0 i bit degli eventi
non autorizzati ad interrompere): |
|
Priorità |
bit3 |
bit2 |
bit1 |
bit0 |
Interrupt Enable Register
[port_9]
|
|
2 |
|
|
|
1 |
1 = interruzione
abilitata per Dato Ricevuto (Received
Data Available) o per
FIFO timeout [16550]
[interrompe se il
Receive Buffer
Register,
RBR, è pieno] |
|
3 |
|
|
1 |
|
1 = interruzione
abilitata per Dato Trasmesso (Transmit
Data Empty)
[interrompe se il
Transmit Holding Register, THR,
è
vuoto] |
|
1 |
|
1 |
|
|
1 = interruzione
abilitata per Variazioni dello Stato della Linea (Receiver
Line Status)
[interrompe se è stato rilevato un
errore nel flusso dati o un
Break] |
|
4 |
1 |
|
|
|
1 = interruzione
abilitata per Variazioni dello Stato del Modem (Modem
Status)
[interrompe se stato rilevato un
cambiamento
nel handshake] |
 | E' importante notare che anche più di un evento può
essere contemporaneamente autorizzato; per rendere facile la
localizzazione dell'istruzione chiamata a determinare questa scelta l'ho
volutamente associata all'etichetta
Cambia:; il codice
mostrato qui di seguito, abilitando il solo bit2
(dato trasmesso,
trasmettitore vuoto), è adatto al progetto di gestione della
Trasmissione sotto Interrupt
(TxD2Com1 per la
COM1 e TxD2Com2
per la
COM2) disponibile partendo dall'elenco di
questa pagina): |
 | Naturalmente il progetto di gestione della
Ricezione sotto Interrupt (RxD5Com1
per la
COM1 e RxD5Com2
per la
COM2) dovrà provvedere ad abilitare il
solo bit1 (dato
pronto in ricezione), ma all'occorrenza è possibile ogni altra
combinazione. |
|