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]