Ok, vou colocar aqui um exemplo em C

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>


int main () {

        /* Aqui eu peco permissao ao kernel para acessar a porta paralela*/
        /* Ele vai me permitir escrever nas portas 0x378,0x379 e 0x37A   */

        if (ioperm(0x378, 3, 1)) {perror("ioperm"); exit(1);}

        /* Agora vou colocar todos bits da porta 0x378 (pinos 2 a 9 do conector
           em nivel baixo ( 0V ) */

        outb(0, 0x378);

        /* Agora vou colocar todos os pinos de 2 a 9 do conector em nivel alto */

        outb(255, 0x378);

        /* Agora vou colocar os pinos 2,3,4,5 em baixo e 6,7,8,9 e nivel alto */

        outb(240, 0x378);


}


Ou seja, se voce converter para binario o valor que estah dentro do outb (o primeiro 
parametro)
vai entender exatamente o que estah acontecendo.

Dessa maneira estah trabalhando em modo SPP (Standard).
Se voce fizer um inb, tipo:

char variavel_qualquer;
variavel_qualquer=inb(0x378);

voce terah nessa variavel o valor corrente do que estah na porta, ou seja, o que foi 
escrito por
ultimo. Assim fica mais pratico, fazendo um & ou um | para alterar um pino sem alterar 
os outros.

Existem mais duas portas, 0x379 e 0x37A que tem mais pinos, alguns de entrada, alguns 
de 
saida e alguns de entrada/saida. PAra maiores informacoes, veja no IO-port-programming 
howto
e no site www.beyondlogic.org.

No que mais eu puder ser util, eh soh chamar.

AH! Antes que eu me esqueca, esse programa SOH roda como root, pois voce estah 
acessando
o hardware diretamente. Se rodar como usuario, ele dah um segmentation fault.

Um forte abraco, e boa sorte

Xultz




On Mon, 20 May 2002 08:32:45 -0300
"Ericson Benjamim" <[EMAIL PROTECTED]> wrote:

> Prezado Xtian,
> 
> Serve sim, eu posso incluir codigo C dentro do Pascal.
> O que eu quero � controlar individualmente o n�vel de tens�o (0/5V)
> em cada pino da porta paralela. Se voc� tiver algum exemplo eu
> agrade�o.
> 
> Grato,
> 
> Ericson Benjamim
> ----- Original Message -----
> From: "Xtian Xultz" <[EMAIL PROTECTED]>
> To: "Ericson Benjamim" <[EMAIL PROTECTED]>
> Sent: Saturday, May 18, 2002 12:21 PM
> Subject: Re: (linux-br) acessando bit a bit a porta paralela
> 
> 
> Serve em C? Jah fiz isso vareias vezes, se quiser te dou uma ajuda,
> de preferencia me dizendo como serah sua aplicacao, assim eu vou
> mais direto ao assunto...
> 
> 
> On Fri, 17 May 2002 15:34:10 -0300
> "Ericson Benjamim" <[EMAIL PROTECTED]> wrote:
> 
> > Prezados Colegas,
> >
> > Alguem sabe como ativar/desativar individualmente cada
> > pino da porta paralela, preferencialmente em FreePascal
> > ou Rapid-Q?
> >
> > Grato,
> >
> >   �v�     Ericson Benjamim

Assinantes em 20/05/2002: 2254
Mensagens recebidas desde 07/01/1999: 167484
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a