[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



    ----------------------------------
    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 debian-laespiral-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: