??????????ж??????????? OSIntExit();        //?????????л????ж?

??????????????У??????????????????????????????????????????????л????

????????????????????OSTimeDly (int32 ticks)

void  OSTimeDly (int32 ticks)
{
    OS_CPU_SR  cpu_sr = 0;
    int8   index;
    TCB    *pTCB;
 
    OS_ENTER_CRITICAL();
    OSCurTCB->TCBDelay = ticks;
    OSNewTCB = NULL;
   /*?????????????????????????
    ???????????????????????????
    ?????????????????*/
    for (index = 0; index < TaskNUM;index++)
    {
       pTCB = OSTCBTable+index;
       /*???????????*/
       if (pTCB->TCBDelay != 0)
       {
           continue;
       }
       /*????????????*/
       if  (pTCB->TaskStat == OS_Task_Pend)
       {  
            continue;
       }
      /*?????????????????
       ??????????????????*/
      if (OSCurTCB->CurPriority < pTCB->CurPriority)
     {
         OSNewTCB = pTCB;
         break;
      }
      /*????????????????????*/
     if (OSCurTCB->CurPriority > pTCB->CurPriority)
     {
         /*????????????????????????????
         ?????????????????*/
        if (OSNewTCB == NULL)
        {
            OSNewTCB = pTCB;
        }      
        break;
  }
 
  /*?????????????????
    ????????????????????*/
  if (OSCurTCB->CurPriority == pTCB->CurPriority)
  {
     /*?????????????????*/
     if ((pTCB > OSCurTCB))
     {
          OSNewTCB = pTCB;
          break  ;
     }
   /*??????????????????????
     ?????????????????????????????????*/
    if (((pTCB < OSCurTCB)||(pTCB == OSCurTCB))
        &&(OSNewTCB == NULL))
    {
         OSNewTCB = pTCB;
         continue;
    }
  }
 
 }
 OS_EXIT_CRITICAL();
 OSTaskSche();
}

????????????????????????????????????????????????е????????????????????????????????????????л????????????????????л?????????????????????????Ч???????????????????????????????????β???????????顣?????????????????????????и??????????????????????Ч??????????????????

?????????????????????????л????????????????????ν??????????...

??????CSDN????п??????????????KEILMDK4.23??IDE