导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[含笑杨]大家觉得UCOS中的OSTimeDly(



No.62404
作者:含笑杨
邮件:yangxuejin2003@hotmail.com
ID:24284
登陆:3次
文章数:9篇
最后登陆IP:61.153.4.90
最后登陆:2004/9/27 18:06:09
注册:2004/8/6 15:41:40
财富:141
发帖时间:2004/9/14 11:23:09
发贴者IP:61.153.4.90
标题:含笑杨:大家觉得UCOS中的OSTimeDly()是否有问题呢?
摘要:No.62404大家觉得UCOS中的OSTimeDly()是否有问题呢? 我们大家都知道,OSTimeDly()的程序是下面这样的:
void  OSTimeDly (INT16U ticks)
{
    INT8U      y;
#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status     */
    OS_CPU_SR  cpu_sr;
    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!                             */
    }
我们从上面的程序可以分析知道,当一个任务运行完主要的工作,调用OSTimeDly (2),想延时两个节拍,我不知道按照这样的程序还能延时吗?
大家看看上面的程序,当TICKS>  0时就可以进行任务调度了, 也就是说不当我一开始调用这个函数OSTimeDly (2)的时候,TICKS肯定是大于0的(时钟节拍一般都在10MS~100MS之间 ......

>>返回讨论的主题


  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:5328毫秒 查询6次