segunda-feira, 22 de agosto de 2011

Controle de Hardware Via Porta Paralela



Enquanto meus amigos iam para uma festa (como se eu quisesse ir também ^^) passei parte da noite de sábado criando um controle de bits através da porta paralela no meu Desk.
Bem o código que desenvolvi é muito simples de modo a gerar um contexto inicial a respeito do assunto para voce caro nerd.

Sistema Operacional: Linux Debian 64bits
Linguagem de programação: C padrão ANSI.

O sistema operacional utilizado foi o DEBIAN (squeeze).  Porém funciona também para qualquer sistema operacional  Linux devido ao fato de o software fazer uso apenas das bibliotecas padroes ANSI de C desde que voce tenha um compilador padrão ANSI instalado. Já para o controle através do SO Windows é necessario utilizar uns softwares a mais, que irei postar nas nas próximas semanas.

O código:

<hr>

#include <stdio.h>  // biblioteca padrão de C
#include <sys/io.h> // biblioteca responsável pelo controle de hardware
unsigned int Saida;     // a saída da porta precisa ser sem sinal pois a paralela só tem 8 saidas

// Protótipos das funçoes

int openPort(void);
void controlerPort(void);
void closePort(void);

//bloco principal do programa

void main (void)
{
openPort();
controlerPort();      
closePort();
}

// função que pede permissão para abrir a porta

int openPort(void)
{
if(!ioperm(0X378,3,1)) return 0; //note a funcao ioperm() faz parte da biblioteca <sys/io.h>
}

// funçao que fecha a porta ao final do programa

void closePort(void)
{
outb(0, 0x378); //esse metodo também é parte de <sys/io.h>
ioperm(0x378,3,0); //passa-se 0 no ultimo parametro para se fechar a porta
}

//logica da saida

void controlerPort(void)
{
int i,a;
for(a = 0; a <= 10 ; a++)
{
Saida = 1;

for(i = 0; i <= 7; i++)
{
outb(Saida, 0x378); // imprime saída na porta
printf("%d\n", Saida);
Saida = Saida << 1; // desloca o bit para a direita
sleep(1); //para por 1 segundo
}
}
}

<hr>

Para funcionar talvez seja necessário habilitar o funcionamento da porta através da Bios do seu
computador.

Por hoje é isso nas próximas postagens entrarei em maior deltalhe a respeito de assuntos específicos, como a construção de um hardware interessante para controle.
Atenciosamente.

Contato: desenvolvimento.pda@gmail.com

Nenhum comentário:

Postar um comentário