注意到taskDelay的参数是int类型,这意味着该数字可能是负数。只是想知道函数在传递负数时会如何反应。
答案 0 :(得分:0)
大多数函数会验证输入,只返回早期/返回0 /将有问题的参数设置为默认值。
答案 1 :(得分:0)
我认为在制作中没有迫切需要这样做,你可能会有一些代码可以用来测试....为什么不试一试呢?
答案 2 :(得分:0)
文档没有解决它,它们定义的唯一错误代码不包括这种情况。因此,最正确的答案是结果未定义。
有关此gem的信息,请参阅VxWorks / Tornado II FAQ:
taskDelay(-1)显示了另一个错误 vxWorks计时器/刻度代码。它有 设置vxTicks的(侧面)效果 为零。这破坏了当地时间 (可能还有其他的东西)。事实上 taskDelay(x)将具有相同的效果 如果vxTicks + x> = 0x100000000。如果 系统时钟频率为100Hz 大约500天后发生(因为 vxTicks包装)。以更快的时钟速率 它会更快地发生。有人在尝试 几年的正常运行时间?
哦,有一个没有证件的鞋面 限制时钟频率。按费率计算 4294以上select()将失败 将其'usec'时间转换为 正确的刻度数。 (来自:大卫 Laight,dsl @ tadpole.co.uk)
假设这个bug已经过时,我希望它会返回一个错误或者与taskDelay(0)做同样的事情,这会将你的任务放在就绪队列的末尾。
答案 3 :(得分:0)
taskDelay(10)的任务延迟时间将为虚拟10,9,..,1,0。
对于taskDelay(-10),任务延迟时间将为-10,-11,...,-2147483648,2147483647,...,1,0。