完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
初学UCOS有以下疑惑,求解,谢谢!
如下程序: void my_task1(void *p_arg) { (void)p_arg; while (1) { 10ms_task(); OStimeDlyHMSM(0, 0,0,10); } } 现在我的意图是每10ms实时执行一次该“10ms_task()”函数,但有个疑惑。 这里OSTimeDlyHMSM(0, 0,0,10)函数是挂起当前任务延时10ms后再次回到该任务。那么这个延时的10ms是否包括前面 10ms_task()函数所运行的时间? 如果不包括,那么如果我在10ms_task()函数中运行了1ms,此时不是相当于每11ms运行一次 10ms_task()函数了么?这样就达不到每10ms实时运行该函数的意图。是否有方法实现每10ms实时执行一次该函数? 请各位大侠指点,谢谢! |
|
相关推荐
8个回答
|
|
不太懂,请教高手解答!
|
|
|
|
好好哈哈哈哈哈哈哈
|
|
|
|
void my_task1(void *p_arg)
{ (void)p_arg; while (1) { 10ms_task(); OSTimeDlyHMSM(0, 0,0,9); } } |
|
|
|
ucos系统任务的延时一般都是需要系统的延时函数.如果你在函数里面调用了ostimedly..那在调用的时候其实任务已经休眠掉了.所以就把所有的延时周期相加即可得到任务的延时周期!
|
|
|
|
可以在定时器中断产生信号,任务中等待该信号处理。
|
|
|
|
同意四楼。。。。。。。。
|
|
|
|
四楼正解!!!
|
|
|
|
448251593 发表于 2014-9-29 13:05 ucos系统任务的延时一般都是需要系统的延时函数.如果你在函数里面调用了ostimedly..那在调用的时候其实任务已经休眠掉了.所以就把所有的延时周期相加即可得到任务的延时周期! |
|
|
|
只有小组成员才能发言,加入小组>>
UCOSII中断中添加OSSemPost(Sem);程序无法运行
4887 浏览 1 评论
在BC5.0上编译uC/OS-II出现"eeror writing object file",怎样处理???
3125 浏览 1 评论
454浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-18 03:58 , Processed in 0.650965 second(s), Total 93, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191