Fórum Recebendo sinal da porta paralela !!?? #304731
07/12/2005
0
Pessoal estou com umas ideias novas gostaria de saber como ki faço para capturar sinais que chegam atraves da porta paralela e como enviar tbm !!!!
so ki nao tenho nen ideia de como fazer isso !! mais nenhuma mesmo desde os cabos ate ao desenvolvimento do software !!!!
espero que vc´s me ajuden !!!!!
vlw
Guilherme
Curtir tópico
+ 0Posts
07/12/2005
Vieira_alex
http://www.rogercom.com/frame1.htm
Gostei + 0
12/12/2005
Guilherme
Gostei + 0
12/12/2005
Dopi
Acho que os links a baixo podem ajudar...
http://www.sabereletronica.com.br/downloads.htm (veja o 319)
http://forum.clubedelphi.net/viewtopic.php?t=70844
Gostei + 0
12/12/2005
Dopi
Portanto: 378 -> 888 (use a calculadora do Windows em modo cinetífico para converter)
{-----------------------------------------------------------------------------
Lê 1 byte de uma porta de Hardware
Nota: - Essa funçao funciona normalmente em Win9x,
- XP /NT /2000, deve-se usar um device driver que permita acesso direto
a porta do Hardware a ser acessado (consulte o fabricante do Hardware)
- Linux: é necessário ser ROOT para acessar /dev/port
(use: su ou chmod u+s SeuPrograma )
---------------------------------------------------------------------------- }
{$WARNINGS OFF}
function InPort(PortAddr:word): byte;
{$IFDEF LINUX}
var Buffer : Pointer ;
FDevice : String ;
N : Integer ;
FHandle : Integer ;
{$ENDIF}
begin
{$IFDEF MSWINDOWS}
asm
mov dx,PortAddr
in al,dx
end;
{$ELSE}
FDevice := ´/dev/port´ ;
Buffer := @Result ;
FHandle := FileOpen(FDevice, fmOpenRead);
if FHandle <= 0 then
raise Exception.Create(´Erro abrindo: ´+FDevice+#10+10+
´Você deve ter direito de Leitura nesse diretório.´);
try
N := FileSeek( FHandle, PortAddr, 0 ) ;
if N <= 0 then
raise Exception.Create(´Erro ao acessar a porta: ´+IntToStr(PortAddr));
N := FileRead(FHandle, Buffer^, 1) ;
if N <= 0 then
raise Exception.Create(´Erro ao ler a porta: ´+IntToStr(PortAddr));
finally
FileClose( FHandle );
end ;
sleep(5) ;
{$ENDIF}
end ;
{$WARNINGS ON}
{-----------------------------------------------------------------------------
Envia 1 byte para uma porta de Hardware
Nota: - Essa funçao funciona normalmente em Win9x,
- XP /NT /2000, deve-se usar um device driver que permita acesso direto
a porta do Hardware a ser acessado (consulte o fabricante do Hardware)
- Linux: é necessário ser ROOT para acessar /dev/port
(use: su ou chmod u+s SeuPrograma )
---------------------------------------------------------------------------- }
procedure OutPort(PortAddr: word; Databyte: byte);
{$IFDEF LINUX}
var Buffer : Pointer ;
FDevice : String ;
N : Integer ;
FHandle : Integer ;
{$ENDIF}
begin
{$IFDEF MSWINDOWS}
asm
mov al, Databyte
mov dx,PortAddr
out dx,al
end;
{$ELSE}
Buffer := @Databyte ;
FDevice := ´/dev/port´ ;
FHandle := FileOpen(FDevice, fmOpenWrite);
if FHandle <= 0 then
raise Exception.Create(´Erro abrindo: ´+FDevice+#10+10+
´Você deve ter direito de Escrita nesse diretório.´);
try
N := FileSeek( FHandle, PortAddr, 0 ) ;
if N <= 0 then
raise Exception.Create(´Erro ao acessar a porta: ´+IntToStr(PortAddr));
N := FileWrite(Fhandle, Buffer^, 1) ;
if N <= 0 then
raise Exception.Create(´Erro ao escrever na porta: ´+IntToStr(PortAddr));
finally
FileClose( FHandle );
end ;
sleep(5) ;
{$ENDIF}
end ;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)