我有一delphi函数,需要调用两个外部函数(vb所写),但运行到da:= h*16 +l时总是得不到想要的值既DA值。请各位检查一下,问题出在哪里?谢谢!
天空的云彩 2001-12-19 09:28:14 我有一delphi函数,需要调用两个外部函数(vb所写),但运行到da:= h*16 +l时总是得不到想要的值既DA值。请各位检查一下,问题出在哪里?谢谢!
VB中声明:
Private Declare Sub out_byte Lib "vbdll.dll" (ByVal port%, ByVal da%)//写一个byte
Private Declare Function in_byte Lib "vbdll.dll" (ByVal port%) As Integer//读一个byte
DELPHI中声明:
procedure out_byte(port,dat:integer);external 'vbdll.dll';
function in_byte(port:integer):integer;external 'vbdll.dll';
函数:
Function ad2118(channel:Integer):integer;
var h,l,da:integer;
begin
out_byte(baseadd, channel);
sleep(100);
out_byte(baseadd+1, 1);
sleep(500);
h:= in_byte(baseadd + 2); //高位
sleep(50);
l:= round(in_byte(baseadd+3)/16); //低位
da:= h*16 +l ;
ad2118:= da ;
End;