我正在尝试在 vxworks 中编写程序。当一个任务总延迟为 400 滴答时,它在第 100 个滴答时暂停 20 滴,然后恢复延迟。
我的主要代码如下:
void DelaySuspend (int level)
{
int tid, suspend_start,suspend_end,i;
suspend_start = vxTicks + 100;
suspend_end = vxTicks + 120;
i = vxTicks;
/* myfunction has taskDelay(400)*/
tid = taskSpawn("tMytask",200,0,2000,(FUNCPTR)myfunction,0,0,0,0,0,0,0,0,0,0);
/* tick between vxTicks+100 and vxTicks+120,suspend tMytask*/
while (i<suspend_start)
{
i=tickGet();
}
while (i <= suspend_end &&i >= suspend_start)
{
i = tickGet();
taskSuspend(tid);
}
}
我想要的是验证总延迟时间(或滴答声)即使我暂停任务一段时间也不会改变。我知道答案,但只是尝试对其进行编程以显示 vxWorks 是如何做到的。