我正在使用QNX生成频繁的事件。需要通过控制回路不时调整事件的频率。我试着用usleep。
while(1)
{
//performe event
//calculate phase shift
usleep(FREQUENCE - drift); // Frequnce is in the range of 1-4 ms
}
这可以工作,但它会产生大的频率抖动。我认为这是因为我们阻止CPU执行其他任务。 QNX是一个操作系统,因此还需要执行其他一些任务。
所以我想做的是改用计时器。据我所知,当我的进程正在睡觉时,计时器允许其他进程的穿孔。
可悲的是我是QNX的新手所以我不知道如何使用计时器。我只找到了产生频繁定时器信号的例子的链接,但之后没有调整频率。 谢谢你的帮助
PS:我假设脉冲计时器是正确的,因为如果你想根据QNX timer docu等待使用它的计时器