高级会员

- 积分
- 551
- 金钱
- 551
- 注册时间
- 2017-3-16
- 在线时间
- 89 小时
|

楼主 |
发表于 2018-5-22 22:56:00
|
显示全部楼层
本帖最后由 bh1023058880 于 2018-5-22 22:59 编辑
[table=98%,rgb(232, 232, 232)]
[tr][td]在学习UCOS III任务同步实验的时候有点疑惑,下面是两个任务函数体,我的疑问是在原子的视频中,连续快速按KEY_UP按键的时候,从视频中可以看出,信号量的值是先连续增加,然后再依次递减,我的疑问是为什么在连续快速按up按键的时候,task2没有执行,打个比方,我们连续快速按up按键5次,在第一次按的时候,信号量的值从0变为1,这说明执行了task1中的OSSemPost(&SYNC_SEM,OS_OPT_POST_1,&err) LCD_ShowxNum(150,111,SYNC_SEM.Ctr,3,16,0);这两个函数,那执行完LCD_ShowxNum(150,111,SYNC_SEM.Ctr,3,16,0)函数后不是应该执行OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err)函数吗?在执行OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err)的时候,不是应该做任务调度,发生任务切换,切换到任务task2的吗?总之我觉得无论按多快,只要按了,应该马上任务切换的吧。怎么会在连按的时候,仿佛一直在task1,请大家点拨一下,我脑子缺根筋,谢谢了 |
|