ucosII实验 信号量和邮箱的很多疑惑,希望原子哥赐教

2019-07-21 05:23发布

疑问1:蜂鸣器任务
void beep_task(void *pdata)
{
 u8 err;
 while(1)
 {
  OSSemPend(sem_beep,0,&err);  //请求信号量函数
  BEEP=1;
  delay_ms(60);
  BEEP=0;
  delay_ms(940);
 }         
}
这个任务为啥在程序运行中蜂鸣器不响,只有按下KEY1才响呢?
疑问2:
LCD_ShowxNum(192,50,sem_beep->OSEventCnt,3,16,0X80);//显示信号量的值
为什么我没看到SEM的值有任何变化。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
正点原子
1楼-- · 2019-07-21 09:28
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 13:35
ucosii,这里蜂鸣器任务是要先等待信号量,没信号量,当然不响了.
背成一把刀
3楼-- · 2019-07-21 18:31
正点原子 发表于 2013-1-30 10:53
ucosii,这里蜂鸣器任务是要先等待信号量,没信号量,当然不响了.

原子哥,请问下蜂鸣器这个任务比led和触摸屏的优先级高,程序执行到OSSemPend这个函数上就停到这里等待信号量的发送,相当于死到这里了,为什么我在实验的时候led和触摸屏是可以运行的。
背成一把刀
4楼-- · 2019-07-21 19:15
正点原子 发表于 2013-1-30 10:53
ucosii,这里蜂鸣器任务是要先等待信号量,没信号量,当然不响了.

还有一个 原子哥,信号量的改变是不是只要调用OSSemPost这个函数就会把相应信号量的值改变,接受信号量的函数就会知道信号量发生改变从而动作,这个改变的值具体是“0”到“1”这种改变还是其他的改变方式
fang百川
5楼-- · 2019-07-21 21:40
背成一把刀 发表于 2019-1-30 18:14
原子哥,请问下蜂鸣器这个任务比led和触摸屏的优先级高,程序执行到OSSemPend这个函数上就停到这里等待信 ...

你可以看一下有关于操作系统的书,ucos系统任务等待期间程序是不会死的,只是阻塞等待,然后执行其他任务,任务一共有5种状态
szczyb1314
6楼-- · 2019-07-21 23:21
 精彩回答 2  元偷偷看……

一周热门 更多>