ucOSii的延时时间和实际的不一样,慢了许多
ucOSii的延时时间和实际的不一样,慢了许多#define OS_TICKS_PER_SEC 1000即每秒中断1000次, 时间间隔1ms 。可是我测的 OSTimeDly(2)的延时近300ms 本应该是2ms才对的 。大家有遇到类似情况吗 请大侠帮我分析下原因
回复:ucOSii的延时时间和实际的不一样,慢了许多
OSTimeDly函数的参数并不是毫秒数哦,是ticks!!! 下面是它的定义:void OSTimeDly (INT16U ticks)
{
INT8U y;
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr = 0;
#endif
if (OSIntNesting > 0) { /* See if trying to call from an ISR */
return;
}
if (ticks > 0) { /* 0 means no delay! */
OS_ENTER_CRITICAL();
y = OSTCBCur->OSTCBY; /* Delay current task */
OSRdyTbl &= ~OSTCBCur->OSTCBBitX;
if (OSRdyTbl == 0) {
OSRdyGrp &= ~OSTCBCur->OSTCBBitY;
}
OSTCBCur->OSTCBDly = ticks; /* Load ticks in TCB */
OS_EXIT_CRITICAL();
OS_Sched(); /* Find next task to run! */
}
}
RE:ucOSii的延时时间和实际的不一样,慢了许多
是啊 这个不是延时的例子。:DRE:ucOSii的延时时间和实际的不一样,慢了许多
用OSTimeDlyHMSM这个。
页:
[1]