你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2304|回复: 1

为什么UCOS的信号量已经有效了,而等待任务的信号量却不执行???

[复制链接]

4

主题

18

回帖

0

蝴蝶豆

初级会员

最后登录
2019-11-12
发表于 2012-3-12 21:13:27 | 显示全部楼层 |阅读模式
2个任务

tsak1  优先级6
task2 优先级8

OS_EVENT* SEM1;   

SEM1=OSSemCreate(0);   

task1(void)
{
  for(;;)
   {
    printf("task1 ruing \r\n");
    OSSemPost(SEM1);
        OSTimeDlyHMSM(0,0,0,600);
   }
}

task2(void)
{
  for(;;)
    {
        OSSemPend(SEM1,0,&err);    
         printf("task2 ruing \r\n");
         OSTimeDlyHMSM(0,0,0,20);
       }
}

task2 第一次执行了一次,然后始终没有执行,暂停查看OSEventCnt的值为123, 按理说这个信号量已经有效了,延时也是足够的,为什么task2得不到运行????
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2012-3-13 10:32:41 | 显示全部楼层

RE:为什么UCOS的信号量已经有效了,而等待任务的信号量却不执行???

你看一下是不是死到这个里面了.
OSSemPend(SEM1,0,&err);   
仔细看一下OSSemPend入口参数的说明.
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版