我正在尝试移植一些交给我的旧 Pascal 代码,其目的是控制数字 I/O 卡,但我遇到了一个涉及等待功能的障碍。每当发送信号时,程序员都会做这样的事情
[Set the port status]
LoopDelay([a long integer])
[Set the next port status]
LoopDelay([next long integer])
etc.
LoopDelay 看起来像这样:
procedure loopdelay(looping:longint);
var
counter,count : longint;
begin
for counter:=1 to looping do
inc(count);
end {loopdelay};
在我看来,他好像根据处理器速度做了一些数学运算,并计算了他必须迭代循环多少次才能等待一定的时间。我怎样才能知道等待多长时间?
附加信息: 处理器是 80 年代末/90 年代初的 486(根据 wikipedia 在 20 和 66 MHz 之间)。计算机运行 DOS 或早期的 Windows,代码使用 Turbo Pascal 7 编译。传递给 loopdelay 的两个常量是 1266 和 6328。
我应该很快就会访问这台机器,所以希望那时我能够找到确切的处理器。理想情况下,我想要一个可以插入时钟速度的公式。