Acessando a porta paralela via Linux
A porta paralela vai além da comunicação com uma impressora, podemos conectar qualquer tipo de dispositivo, tanto para controle e transmissão, como para aquisição e recuperação de dados. Para manipular esse dispositivo tão interessante podemos usar a poderosa linguagem C/C++, porém existem algumas particularidades para acessar as portas paralelas via Windows e Linux.
Introdução
A porta paralela vai além do comunicação com uma impressora, podemos conectar qualquer tipo de dispositivo, tanto para controle e transmissão, como para aquisição e recuperação de dados.
Para manipular esse dispositivo tão interessante podemos usar a poderosa linguagem C/C++, porém existem algumas particularidades para acessar as portas paralelas via Windows e Linux.
Para o acesso a porta paralela via Windows NT, 2000 e XP, há a necessidade de criar drivers e DLLs que necessitam de uma quantidade enorme de rotinas para serem implementadas. Com o Linux é necessário algumas funções para disponibilizar a porta paralela.
Os programas podem ser escritos com o uso de editores como o "vi" e o "mcedit" e para compilar utiliza-se o gcc ou g++.
Veja exemplo:
Para manipular esse dispositivo tão interessante podemos usar a poderosa linguagem C/C++, porém existem algumas particularidades para acessar as portas paralelas via Windows e Linux.
Para o acesso a porta paralela via Windows NT, 2000 e XP, há a necessidade de criar drivers e DLLs que necessitam de uma quantidade enorme de rotinas para serem implementadas. Com o Linux é necessário algumas funções para disponibilizar a porta paralela.
Os programas podem ser escritos com o uso de editores como o "vi" e o "mcedit" e para compilar utiliza-se o gcc ou g++.
Veja exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>
#define LPT1 0x378 /* Endereço base da porta paralela*/
main(void)
{
if( ioperm(LPT1, 3, 1) ) /*Libera acesso para os endereços: 0x378, 0x379, 0x37A */
{
printf(" Não foi possível obter os endereços: 0x378, 0x379, 0x37A. ");
exit(1); /*Sai do programa */
}
outb(255, LPT1); /*Liga todos os pinos do Registro de Dados do DB2. 0--->desliga*/
}
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>
#define LPT1 0x378 /* Endereço base da porta paralela*/
main(void)
{
if( ioperm(LPT1, 3, 1) ) /*Libera acesso para os endereços: 0x378, 0x379, 0x37A */
{
printf(" Não foi possível obter os endereços: 0x378, 0x379, 0x37A. ");
exit(1); /*Sai do programa */
}
outb(255, LPT1); /*Liga todos os pinos do Registro de Dados do DB2. 0--->desliga*/
}
alguém que tiver problema aí... pode contar comigo também para ajudar
msn: lmnx@hotmail.com