control de puertos
hola!
Necesito decidir que lenguaje utilizar para controlar un osciloscopio mediante el puerto rs232, el criterio de decision es la velocidad de lectura de datos, que me pueden decir al respecto,ahhh, si tienen una funcion que me permita hacerlo en delphi o c++ builder :),se lo agradeceria. de antemano mucha gracias.
Necesito decidir que lenguaje utilizar para controlar un osciloscopio mediante el puerto rs232, el criterio de decision es la velocidad de lectura de datos, que me pueden decir al respecto,ahhh, si tienen una funcion que me permita hacerlo en delphi o c++ builder :),se lo agradeceria. de antemano mucha gracias.
estos son algunos en Delphi
hImp=CreateFile("\\\\.\\LPT1",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
NULL);
char c;
DWORD n;
for (c=0; c<25;c++)
{
c=0x01);
WriteFile(hImp, &c, 1, &n,(LPOVERLAPPED) NULL);
c=0x02);
WriteFile(hImp, &c, 1, &n,(LPOVERLAPPED) NULL);
c= 0x04);
WriteFile(hImp, &c, 1, &n,(LPOVERLAPPED) NULL);
c= 0x08);
WriteFile(hImp, &c, 1, &n,(LPOVERLAPPED) NULL);
}
int v;
v=CloseHandle(hImp);
yo probe esta rutina y me ha servido de maravilla por que puedo leer y escribir a cualquier puerto
ya sea serial o paralelo lo unico que tienes que hacer es poner el siguiente codigo:
Function InPort(direccion:word):byte;
{$IFDEF WIN32}
assembler;stdcall;
asm
mov dx,direccion
in al,dx
end;
{$ELSE}
begin
Result:=port[direccion];
end;
{$ENDIF}
Procedure OutPort(direc:word;dato:byte);
{$IFDEF WIN32}
assembler;
stdcall;
asm
mov al,dato
mov dx,direc
out dx,al
end;
{$ELSE}
begin
port[direc]:=dato;
end;
{$ENDIF}
el incombeniente es que no funciona para windows 2000 o XP
outportb(portdir,bitnumber)
inportb(",")
#include <dos.h>
main(){
outportb(0x378,0x0F);
}
hImp=CreateFile("\\\\.\\LPT1",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
NULL);
char c;
DWORD n;
for (c=0; c<25;c++)
{
c=0x01);
WriteFile(hImp, &c, 1, &n,(LPOVERLAPPED) NULL);
c=0x02);
WriteFile(hImp, &c, 1, &n,(LPOVERLAPPED) NULL);
c= 0x04);
WriteFile(hImp, &c, 1, &n,(LPOVERLAPPED) NULL);
c= 0x08);
WriteFile(hImp, &c, 1, &n,(LPOVERLAPPED) NULL);
}
int v;
v=CloseHandle(hImp);
yo probe esta rutina y me ha servido de maravilla por que puedo leer y escribir a cualquier puerto
ya sea serial o paralelo lo unico que tienes que hacer es poner el siguiente codigo:
Function InPort(direccion:word):byte;
{$IFDEF WIN32}
assembler;stdcall;
asm
mov dx,direccion
in al,dx
end;
{$ELSE}
begin
Result:=port[direccion];
end;
{$ENDIF}
Procedure OutPort(direc:word;dato:byte);
{$IFDEF WIN32}
assembler;
stdcall;
asm
mov al,dato
mov dx,direc
out dx,al
end;
{$ELSE}
begin
port[direc]:=dato;
end;
{$ENDIF}
el incombeniente es que no funciona para windows 2000 o XP
outportb(portdir,bitnumber)
inportb(",")
#include <dos.h>
main(){
outportb(0x378,0x0F);
}
