文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>uc/os的时间管理(1)

uc/os的时间管理(1)

时间:2010-06-02  来源:linux_qt

uc/os的时间管理(1)
uc/os中时间管理的函数有以下几个:
   1任务延时函数,OSTimeDly()
   2按时分秒延时函数OSTimeDlyHMSM();
   3 让处于延时期的任务结束延时,OSTimeDlyResume();
   4系统时间OSTimeGet()和OSTimeSet()
一.任务延时函数OSTimeDly()
uc/os要求用户提供定时中断来实现延迟和超时控制等功能。时钟节拍的频率越高,系统的负荷就越重。
uc/os II提供了这样一个系统服务,申请该服务的任务需要延迟一段时间,这段时间的长短是由时钟节拍的数目来决的,这个函数叫OSTimeDly().当系统调用一次OSTimeDly()时系统进行一次任务调度,既等待队列中优先级最高的任务
投入运行。注意当延迟结束时,将就绪态中优先级最高的任务的状态置为运行态。
  void OSTimeDly(INT16U ticks)
{
   if(ticks>0){
       OS_ENTER_CRITICAL();
       if((OSRdyTbl[OSTCBCur->OSTCBY]&=~OSTCBCur->OSTCBCur->OSTCBBitX)==0){
              OSRdyGrp&=~OSTCBCur->OSTCBBitY;
       }
   OSTCBCur->OSTCBDly=ticks;
   OS_EXIT_CRITICAL();
   OSSched();
   }
}

其中ticks的取值范围是1到65535,在负荷很重的系统中,任务甚至有可能会在时钟中断即将发生时调用OSTimeDly(1),在这种情况下任务几乎没有得到任何延迟,因为任务马上又被重新调度了,如果用户的应用程序至少得延时一个节拍,必须要调用OSTimeDly(2),指定延时两个节拍。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载