cpu_sr = 0; /* Prevent compiler warning */
#endif
if (ticks > 0) { /* 0 means no delay! */
OS_ENTER_CRITICAL();
y = OSTCBCur-> OSTCBY; /* Delay current task */
OSRdyTbl[y] &= ~OSTCBCur-> OSTCBBitX;
if (OSRdyTbl[y] == 0) {
OSRdyGrp &= ~OSTCBCur-> OSTCBBitY;
}
OSTCBCur-> OSTCBDly = ticks; /* Load ticks in TCB */
OS_EXIT_CRITICAL();
//OS_Sched(); /* Find next task to run! */
}
else
OS_Sched();
}
但是这样的程序至少要延时3个TICKS以上才会进行任务的切换,我想应该是OSTIMETICK()的问题吧?我正在考虑,我不知道我讲的对不对?希望大家一起讨论一下好吗?