----------------------------------
    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]

Responder a