AYUDA urgente con inb() (Leer Pto. Paralelo).

Eduardo Daniel Ibarra <[email protected]>
Newsgroups gmane.linux.debian.internationalization.laespiral
Message-ID <[email protected]>
    ----------------------------------
    AYUDA con la función inb()
    para leer 5 Volts en algún pin del
    conector de Puerto Paralelo.
    -----------------------------------

    Hola:

    Necesito ayuda urgente sobre cómo
leer señales de 5 Volts en el Puerto Paralelo.
(Entrada de ficha DB-25, de 25 pines)

   Estuve mirando man-páginas y bajando varios
documentos de la red, pero no hay caso,
¡¡¡ no puedo registrar voltaje
en los pines del Pto. Paralelo. Ahhhh!!!

    ¿¿¿ Qué es lo que estoy haciendo mal ???
    Tengo Linux Debian Potato (Kernel 2.2.17).

    El puerto SÍ responde, ya que cuando
al Bus de Datos (a sus pines) le envío
una señal, obtengo los 5 Volts en cualquiera
de sus pines de datos (desde el 2 hasta el 9).

   Espero alguien me ayude, dado mi estado
catatónico actual. Desde ya, muchas gracias...

                             Eduardo.

-------------------------------------------
    El programa en detalle es:

-----------------------------------------------
#include <stdio.h>
#include <sys/io.h>
#include <unistd.h>

#define BASE    (0x378)
#define ESTADO  BASE+1
#define CONTROL BASE+2

void main ()
	{
	int Dato;

	// Solicitamos permiso para habilitar el puerto (apertura):
	if (ioperm (BASE, 3 , 1) != 0) {
		printf ("\n ERROR");
		exit (1);}

	// Poner a Masa Pines:
	outb (0x0B, BASE+1); //(BASE+1) es la direccion del Bus de CONTROL.

	// Lectura de datos por Puerto Paralelo:
	for (int i=0; i<60; i++)
		{
		//Dato = Leer_Datos_PP ();
		//Dato = inb (BASE);
		//Dato = ((inb(ESTADO)^0x80) >> 3);

		// Lectura del PIN 10 (bit [6] del registro de Estado):
		// Pongo un voltaje de 5 Volts en pin 10:
		Dato = inb(ESTADO) & 0x40;

		printf ("\n Dato = %d = %c = %h.", Dato, Dato, Dato);
		sleep (1); // Esperar 1 segundo.
		}

	// Solicitamos permiso para deshabilitar el puerto (cierre):
	if (ioperm (BASE, 3 , 0) != 0) printf ("\n ERROR");
	}

------------------------------------------------


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.