On Fri, 6 Jul 2001, Xtian Xultz wrote:

> Olah a todos
> 
> Estou montando um circuito eletronico que pretendo ligar numa porta paralela do 
>micro e pretendo fazer um programa para ler os bits de dados da porta.
> No DOS eu usava o comando inportb do compilador C que eu tinha (DJGPP), mas no linux 
>eu vi que nao existe tal comando. 
> Entao, qual seria a melhor maneira de fazer isso? Abrir o /dev/lp0 como arquivo e 
>ler o dito, ou existe alguma outra maneira?
> 
> Agradeco de antemao a toda ajuda possivel

oi
 leia o Linux I/O port programming mini-HOWTO
  http://www.linuxdoc.org/HOWTO/mini/IO-Port-Programming.html

um exemplo simples:
 /*
 * Interface com Multimetro CA3162 -99 a 999mV
 * compilar com: gcc -O2 -o nome nome.c
 */
#include <stdio.h>
#include <unistd.h>
#include <asm/io.h>
int base=0x378; /* parallel port */
int main()
{
 int cnt,idx;
 int tout=100;
 int t;
 unsigned char digi=0; 
 char temp[5];
 if (ioperm(base, 3, 1)) { perror("ioperm"); exit(1); }
 outb(0x8, base);
 usleep(250000);
 idx=0;
 for(cnt=2;cnt>=0;cnt--) 
  {
   outb( (~(1 << cnt)) & 0x0F  , base); 
   while(((inb(base+1) & 0x80)==0x80) && tout!=0) {tout--; usleep(500);}
   digi=inb(base+1) >> 3;
   if (digi <= 9) { temp[idx]=digi+48; ++idx;}
    else if (digi=10) { temp[idx]='-'; ++idx;}
      else { temp[idx]='E'; ++idx;}
   /* if (cnt==1) { temp[idx]='.'; ++idx;} */
   outb(0, base); 
  }
 temp[3]='\0';
 t = atoi(temp); 
 printf("%d\n",t);
 printf("%d\n",t);
 printf("temperatura\n");
 printf("%3.1f&ordm;C\n",(float) t/10);
 if (ioperm(base, 3, 0)) {perror("ioperm"); exit(1);}
 exit(0);
}
_________________________________ ________________________________________
Paulino Kenji Sato               |    Universidade Estadual de Maringa
mailto:[EMAIL PROTECTED]        |    Departamento de Fisica
http://www.dfi.uem.br/~paulino   |    Maringa Pr                Brasil
                          Linux user 56176


Assinantes em 06/07/2001: 2265
Mensagens recebidas desde 07/01/1999: 121750
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a