SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Penguin-man en Viernes 1 de Junio de 2007, 06:12

Título: Puerto Paralelo
Publicado por: Penguin-man en Viernes 1 de Junio de 2007, 06:12
Hola, estoy haciendo un programa que debe sacar bits por el data port bajo linux, el problema es que, solo he conseguido poner todos las direcciones (desde D0 -D7) en 1 o en 0, con la instruccion

outb(0x00,puerto); o 0xff (para ponerlos en 1)

Mi pregunta es: como puedo sacar un bit por determinada direccion, por ejemplo como puedo sacar el numero  10010101 ?
Título: Re: Puerto Paralelo
Publicado por: Geo en Sábado 2 de Junio de 2007, 01:37
Mmmm, lee sobre números binarios y hexadecimales.
Básicamente, la función outb recibe un número de 0 a 255 (decimal), ese número decimal se puede representar en binario utilizando ocho bits, y en hexadecimal con dos posiciones nos basta para indicar dicho número.

Hex      =   Decimal   = Binario
0x00 = 0 (dec) = 00000000 (bin)
0xff = 255 (dec) = 11111111 (bin)


Ya que leas sobre las diferentes representaciones numéricas, verás que lo que quieres es:
Código: Text
  1.  
  2. outb( 0x95, puerto );  // Envía 10010101 a puerto
  3. outb( 149, puerto ); // Esto es lo mismo :P 0x95 = 149 (dec)
  4.  
  5.  

Suerte.