|
 |
Procedure Seriali |
SetInt0C - Fasi preliminari 2/6
[192 di 403] |
- Gestione degli eventi seriali con la Tecnica dell'Interruzione |
|
5.2
Procedura SetInt0C:
inizializzazione dei
Registri dell'UART
[2 di 6] |
 | Per assicurare una corretto servizio alle possibili
richieste di interruzione da parte della porta seriale è necessario aggiungere un supplemento di predisposizioni; per
cominciare si azzerano
le eventuali richieste pendenti intervenendo su
alcuni Registri dell'UART:
 | la lettura dei 2 Registri di
Stato (quello
di Linea
[port_D]
e quello
del Modem
[port_E]) annulla infatti tutti i bit in essi contenuti,
annullando così anche le possibili richieste d'interruzione pendenti per
errori in ricezione o per
variazione dei segnali di handshake
CTS,
DSR,
RI
o
CD |
 | la lettura del
Registro
di Identificazione delle Interruzioni
[port_A] annulla anche
l'eventuale suo bit0 (se
bit0=1 significa
INT pendente) |
 | la lettura del
Registro
di RiceTrasmissione Dati [port_8] annulla l'eventuale
richiesta di interrupt per dato seriale disponibile |
|
 | Il codice necessario
per queste operazioni è mostrato qui di seguito: |
 | Possiamo notare che le ultime 4 istruzioni hanno forzato a
0 il bit7
del
Registro
di Controllo Linea
[port_B];
sebbene la procedura IniSerial (certamente
già chiamata per fissare velocità e
protocollo hardware)
abbia probabilmente gia provveduto non costa nulla
averne certezza: solo così l'UART
sarà nelle condizioni di normale funzionamento, cioè consentirà di puntare il
Registro di Ricetrasmissione Dati con
l'indirizzo [port_8] e il
Registro di Abilitazione delle Interruzioni
con l'indirizzo [port_9], invece dei 2
Registri Divisori di Baud Rate. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|