1

我试图使用计时器在 CAPL 程序(类似于 C 语言)中生成一个随机数。假设我有一个计时器 X 我启动它

/****Timer start****/
on start
{ 
  settimer (x,20000);   // setting the timer for 20 secs
}

现在我只需要一个 300 毫秒到 20 秒之间的随机数,分辨率为 500 毫秒。CAPL 有一个名为 random() 的内置函数来执行此操作。

我喜欢

int random(int x);

现在我怎样才能确保我只获得一个分辨率为 500 毫秒的随机值?

有什么建议么?

4

2 回答 2

1

怎么样

y = random(40);
TestWaitForTimeout(300+y*500);

y获取 0 到 39 之间的随机值,对应于 0-19.5 秒,分辨率为 500 毫秒。然后将 300 毫秒添加到总超时。产生的超时将在 300 毫秒到 20 秒之间,分辨率为 500 毫秒。

于 2015-06-19T08:27:46.750 回答
0

我能够通过编写如下测试函数来生成随机数。该random函数生成一个random介于0n-1之间的数字。就分辨率而言,库函数random()不允许改变分辨率。

testfunction Random_No ()

{

dword y;

y = random(20000);


TestWaitForTimeout(y);

}
于 2013-05-14T13:49:09.900 回答