AYUDA ¿como saber la direccion hexadecimal del puerto usb?
Publicado: 07 Dic 2010, 22:08
Pues miren la situacion es la siguinte: necesito la direccion del puerto usb; pues tengo un programa en lenguaje c que manda bits por el puerto paralelo para hacer prender unos leds; sin embargo en la clase nos pidieron hacerlo con un adaptador de usb a paralelo!!!! desde luego los programas que he encontrado para la ejecucion piden la direccion del puerto!!!
si alguine tiene un programa que en lenguaje c o cualquiera; en el que se pueda hacer esta operacion se los agradecere mucho!!
Aqui esta el programa que encontre en la red
#include <stdio.h>
#include <unistd.h>
//asm/io.h es donde están definidas las funciones ioperm() y outb()
#include <asm/io.h>
/* Esta es la direccion más frecuente para el puerto paralelo*/
#define DATAPORT 0x378
int main()
{
//Obtenemos permiso de acceso para la direccion de DATAPORT y
//las 2 siguientes
if (ioperm(DATAPORT, 3, 1)) {perror("ioperm"); return 1;}
//Entramos en un bucle infinito
while(1)
{
int input;
//Le pedimos al usuario que introduzca un número
printf("Introduce un número entre 0 y 255 (-1 para salir)\n");
//Leemos el valor introducido y lo guardamos en "input"
scanf("%d", &input);
//Si "input" vale "-1" salimos del bucle
if(input==-1) break;
//Si "input" no está entre "0" y "255" (y no era "-1" no nos
//interesa, así que volvemos directamente al comienzo del bucle
if(input < 0 || input > 255) continue;
//Si hemos llegado hasta aqui es que "input" vale entre "0" y
//"255" y podemos sacarlo por el puerto paralelo
outb(input, DATAPORT);
}
//Antes de terminar el programa dejamos los permisos de acceso
//a los puertos como estaban
if (ioperm(DATAPORT, 3, 0)) {perror("ioperm"); return 1;}
//El programa termina sin errores
return 0;
}
si alguine tiene un programa que en lenguaje c o cualquiera; en el que se pueda hacer esta operacion se los agradecere mucho!!
Aqui esta el programa que encontre en la red
#include <stdio.h>
#include <unistd.h>
//asm/io.h es donde están definidas las funciones ioperm() y outb()
#include <asm/io.h>
/* Esta es la direccion más frecuente para el puerto paralelo*/
#define DATAPORT 0x378
int main()
{
//Obtenemos permiso de acceso para la direccion de DATAPORT y
//las 2 siguientes
if (ioperm(DATAPORT, 3, 1)) {perror("ioperm"); return 1;}
//Entramos en un bucle infinito
while(1)
{
int input;
//Le pedimos al usuario que introduzca un número
printf("Introduce un número entre 0 y 255 (-1 para salir)\n");
//Leemos el valor introducido y lo guardamos en "input"
scanf("%d", &input);
//Si "input" vale "-1" salimos del bucle
if(input==-1) break;
//Si "input" no está entre "0" y "255" (y no era "-1" no nos
//interesa, así que volvemos directamente al comienzo del bucle
if(input < 0 || input > 255) continue;
//Si hemos llegado hasta aqui es que "input" vale entre "0" y
//"255" y podemos sacarlo por el puerto paralelo
outb(input, DATAPORT);
}
//Antes de terminar el programa dejamos los permisos de acceso
//a los puertos como estaban
if (ioperm(DATAPORT, 3, 0)) {perror("ioperm"); return 1;}
//El programa termina sin errores
return 0;
}