www.openedv.com
您好,欢迎您!    会员注册 | 登入 
公告:欢迎访问www.openedv.com开源电子网,开源共享共同进步,祝您新年快乐,万事如意!
设为首页 | 加入收藏
论坛首页 » 嵌入式操作系统 前往: 
请教ucos延时问题
发表人 内容
[Down] [Up]
[楼主位] yuanhe249

等级:NO
注册时间:
2011/09/06 16:39
文章: 44
离线

原子哥,
 while (1)
   {
      LED_LED1_ON();
      OSTimeDlyHMSM(0, 0, 0, 100);
     
      LED_LED1_OFF();
      OSTimeDlyHMSM(0, 0, 0, 100);
   }
当程序软仿运行到OSTimeDlyHMSM(0, 0, 0, 100);时就不再运行了 ,是不是我滴答定时没弄明白?



这篇文章被编辑了 1 次. 最近一次更新是在 2011/12/15 14:16

[加为好友] 回复 引用回复
[Down] [Up]
[1楼] 正点原子


等级:NO
注册时间:
2010/12/02 10:41
文章: 8097
来自: 湖南
在线

回复【楼主位】 yuanhe249 :
---------------------------------
你看死在哪里了.



我的淘宝小店:http://shop62103354.taobao.com
[加为好友] 回复 引用回复
[Down] [Up]
[2楼] yuanhe249

等级:NO
注册时间:
2011/09/06 16:39
文章: 44
离线

回复【1楼】 正点原子 :
---------------------------------
void  OSTimeDly (INT16U ticks)
{
#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    OS_CPU_SR  cpu_sr;
#endif    


    if (ticks > 0) {                                                      /* 0 means no delay!         */
        OS_ENTER_CRITICAL();
        if ((OSRdyTbl[OSTCBCur->OSTCBY] &= ~OSTCBCur->OSTCBBitX) == 0) {  /* Delay current task        */
            OSRdyGrp &= ~OSTCBCur->OSTCBBitY;
        }
        OSTCBCur->OSTCBDly = ticks;                                       /* Load ticks in TCB         */
        OS_EXIT_CRITICAL();
        OS_Sched();                                                       /* Find next task to run!    */
    }
}


到OS_Sched();就执行不下去了  


[加为好友] 回复 引用回复
[Down] [Up]
[3楼] 正点原子


等级:NO
注册时间:
2010/12/02 10:41
文章: 8097
来自: 湖南
在线

回复【2楼】 yuanhe249 :
---------------------------------
调度有问题.检查汇编那部分代码吧.或者直接移植我们开发板的demo.



我的淘宝小店:http://shop62103354.taobao.com
[加为好友] 回复 引用回复
 
前往: 

Powered by ALIENTEK工作室 © 粤ICP备12000418号-1