|
 |
Procedure Seriali |
RxD_3 avanzata
[188 di 403] |
- Gestione della
Ricezione Dati con la Tecnica del Polling |
|
4.4 Procedura
RxD_3:
Variante senza Time-Out della versione sofisticata |
 | La procedura RxD_3 è
una variante della precedente
RxD_1, adatta a soddisfare la Ricezione
dei dati via seriale su una qualunque delle 4 porte seriali
possibili, affidando gli effettivi indirizzi
alle 2
variabili locali [port_D]
e [port_8]
predisposte dalla versione sofisticata
della procedura INIserial, ad essa
accoppiata. |
 | Come la precedente RxD_2
si tenta di risolvere l'impossibilità di
tornare al programma chiamante in caso di
flusso di
dati in arrivo non
continuo. |
 | Il suo codice assembly
è mostrato qui di seguito: |
 | Questa versione, invece di
fermarsi in attesa che
il
bit0 del
Registro
di Stato Linea [port_D]
passi a 1 (buffer UART
pieni, dato pronto) viene
comunque
terminata immediatamente, subito
dopo averne controllato il valore con l'istruzione
TEST:
 |
con il registro AH=01H,
se non ci sono dati pronti (bit0=0) |
 | con
il registro AH=00H,
se è stata operata una
corretta ricezione (bit0=1) |
|
 | Il programma chiamante è perciò in grado di decidere se
utilizzare o meno il contenuto del registro AL.
|
 | Questa versione è adatta per una ricezione gestita in polling, con
qualunque protocollo hardware; nonostante funzioni anche
in assenza di un
flusso continuo di
dati in arrivo, rimane
sufficientemente affidabile con dati
in arrivo con
velocità relativamente basse: pur evitando la
necessità di perdere tempo nella gestione di un
Time-Out, la sua precarietà è ora proporzionale al tempo consumato
dal programma chiamante per la verifica (affidata al valore di AH)
di disponibilità di dati, prima di essere rieseguita. |
 | Ne fa uso il progetto
RxD3Com1, dedicato alla
COM1, e l'analogo
RxD3Com2, dedicato alla
COM2; puoi analizzare ogni dettaglio
partendo dall'elenco di
questa pagina. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|