• Viernes 19 de Abril de 2024, 02:21

Autor Tema:  Puerto Paralelo  (Leído 922 veces)

Penguin-man

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Puerto Paralelo
« en: Viernes 1 de Junio de 2007, 06:12 »
0
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 ?

El pingüino es Poderoso

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Puerto Paralelo
« Respuesta #1 en: Sábado 2 de Junio de 2007, 01:37 »
0
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.
La imaginación es el límite.
Hardware & Software | Mexchip