完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
例如:定時器設定週期100ms釋放信號量
case1 xSemaphoreTake( Semaphorebinary, 10 ); case2 xSemaphoreTake( Semaphorebinary, portMAX_DELAY ); case1 任務會一值工作, 所以是10 tick 任務就會跑一次? case2 任務會正常100ms執行一次, 這裡好難理解...故意將堵塞時間設定超過100ms都能正常執行 所以任務解鎖條件有2個嗎?? 1.堵塞時間到了->讀取信號量->繼續賭塞(case1) 2.堵塞時間還沒到但信號量釋放了?(case2) 如果是這樣第二個參數存在意亦是啥... 全部都設定portMAX_DELAY不就好了 |
|
相关推荐
3个回答
|
|
不是所有的任务都需要完全获取到信号量才能运行。就跟你和你室友去吃饭,你已经下楼了,但是你室友在拉屎,不知道拉到什么时候。你室友拉完屎就是信号量,你还没有得到这个信号,所以你就在楼下等他,你要么就一直等,直到他拉完,这个就对应portMAX_DELAY这个参数。你也可以就只等5分钟,5分钟时间到了就自己一个人去吃饭,这个5分钟就是case1的情况!这两个最大的区别,如果你选择portMAX_DELAY的话那你就得一直等,如果你室友不小心掉坑里出不来的话那你就一直吃不上饭得饿死了。而选择只等5分钟的话你就不会饿死。
|
|
|
|
这个例子很有意思
|
|
|
|
很好。这个例子很好,我正在吃饭时看到的
|
|
|
|
只有小组成员才能发言,加入小组>>
716 浏览 0 评论
1120 浏览 1 评论
2499 浏览 5 评论
2837 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2681 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
664浏览 9评论
679浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
792浏览 6评论
640浏览 5评论
681浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 05:18 , Processed in 1.171621 second(s), Total 84, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号