Manejo de los puertos hardware
Introducción
Para intercambiar información con dispositivos exteriores, el computador utiliza los puertos de entrada y salida (E/S). Estos puertos se caracterizanpor la dirección que tienen asignada en el mapa de memoria, y es posible la comunicación con los mismos enviando o recogiendo bytes a/en dicha dirección.
Las funciones de biblioteca que proporciona Cpara la manipulación de estos puertos son fuertemente dependientes del hardware y del sistema operativo y, por tanto, no demasiado estándar. Así, nos centraremos ahora en las funciones de acceso a lospuertos hardware que proporciona TurboC bajo entornos DOS.
Las funciones de biblioteca que proporciona C para el acceso a la memoria no siguen un estándar determinado, y nos concentraremos en las queproporciona TurboC bajo entorno DOS.
Acceso a los puertos hardware
Lectura del puerto
Para recoger información procedente de un puerto hardware (lectura del puerto), TurboC proporciona lasfunciones inport e inportb. Son muy similares; la única diferencia radica en que inportb lee un byte cada vez mientras que inport lee una palabra (2 bytes).
Estas funciones se declaran de la siguientemanera:
int inport (int puerto_dir);
unsigned char inportb (int puerto_dir);
Donde:
puerto_dir es la dirección del puerto hardware de la cual se quiereleer. Y devuelven un dato de tipo int (2 bytes) o de tipo unsigned char (1 byte), respectivamente.
Ejemplo de un byte del puerto paralelo:
#include <stdio.h>
#include <dos.h>
main(){
unsigned char valor;
int puerto = 0x378; /* dirección del puerto paralelo */
valor = inportb(puerto);
printf("Byte leído del puerto %d = 0x%X\n", puerto, valor);
Escritura en elpuerto
Para enviar información a un puerto hardware (escritura en el puerto), TurboC proporciona las funciones outport e outportb. Son muy similares; la única diferencia radica en que outportb envía un...
Regístrate para leer el documento completo.