Gcc 在capl中使用计时器生成随机数

Gcc 在capl中使用计时器生成随机数,gcc,capl,Gcc,Capl,我试图在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); 现在,我如何确保我只获得分辨率为5

我试图在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);
现在,我如何确保我只获得分辨率为500ms的随机值


有什么建议吗?

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

testfunction Random_No ()

{

dword y;

y = random(20000);


TestWaitForTimeout(y);

}

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

testfunction Random_No ()

{

dword y;

y = random(20000);


TestWaitForTimeout(y);

}
怎么样

y = random(40);
TestWaitForTimeout(300+y*500);
y
获取介于0和39之间的随机值,对应于分辨率为500毫秒的0-19.5秒。然后将总超时时间增加300毫秒。产生的超时将在300毫秒到20秒之间,分辨率为500毫秒。

如何

y = random(40);
TestWaitForTimeout(300+y*500);
y
获取介于0和39之间的随机值,对应于分辨率为500毫秒的0-19.5秒。然后将总超时时间增加300毫秒。由此产生的超时将介于300毫秒和20秒之间,分辨率为500毫秒