OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5440|回复: 6

UCOS III任务同步实验问题

[复制链接]

30

主题

152

帖子

0

精华

高级会员

Rank: 4

积分
551
金钱
551
注册时间
2017-3-16
在线时间
89 小时
发表于 2018-5-22 22:53:48 | 显示全部楼层 |阅读模式
2金钱
在学习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,请大家点拨一下,我脑子缺根筋,谢谢了

最佳答案

查看完整内容[请看2#楼]

或者大家告诉我,快速连续按的时候,具体程序是怎么执行的,这两个任务是怎么协调的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

30

主题

152

帖子

0

精华

高级会员

Rank: 4

积分
551
金钱
551
注册时间
2017-3-16
在线时间
89 小时
 楼主| 发表于 2018-5-22 22:53:49 来自手机 | 显示全部楼层
或者大家告诉我,快速连续按的时候,具体程序是怎么执行的,这两个任务是怎么协调的
回复

使用道具 举报

30

主题

152

帖子

0

精华

高级会员

Rank: 4

积分
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,请大家点拨一下,我脑子缺根筋,谢谢了
11.png
回复

使用道具 举报

30

主题

152

帖子

0

精华

高级会员

Rank: 4

积分
551
金钱
551
注册时间
2017-3-16
在线时间
89 小时
 楼主| 发表于 2018-5-23 00:29:37 来自手机 | 显示全部楼层
有人吗
回复

使用道具 举报

30

主题

152

帖子

0

精华

高级会员

Rank: 4

积分
551
金钱
551
注册时间
2017-3-16
在线时间
89 小时
 楼主| 发表于 2018-5-23 08:25:15 | 显示全部楼层
???
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2020-10-31
在线时间
1 小时
发表于 2020-12-3 16:15:46 | 显示全部楼层
楼主知道原因了吗?同疑惑
回复

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2022-1-6
在线时间
22 小时
发表于 2022-4-13 10:48:53 | 显示全部楼层
本帖最后由 ThanksXie 于 2022-4-13 11:07 编辑

任务2 的延时是1s,比任务1的 10ms 长,当任务2开始延时时,任务1中的延时会有100次不会发生任务切换
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 21:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表