control de puertos

druidramp
08 de Febrero del 2004
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.

xx
08 de Febrero del 2004
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);
}




Rafael
08 de Febrero del 2004
puedes usar la libreria io.dll, y puedes trabajar bajo windows xp y nt. Y si alguien sabe como trabajar con el manejo de interrupciones en un ambiente visual pues escribanme como. Gracias