完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教各位大神关于UCOSIII任务中使用延时函数进行调度的问题:
假如我有4个串口中断,都是每隔500ms使用任务内建消息队列的OSTaskQPost向处理任务Com_task发送。 Com_task的消息队列数OS_MSG_QTY我设置成了8。函数结构如下: void Com_task(void *p_arg) { ... while(1) { msg=OSTaskQPend((OS_tiCK )0, (OS_OPT )OS_OPT_PEND_BLOCKING, ←请问这个阻塞有什么用呢 (OS_MSG_SIZE* )&size, (CPU_TS* )0, (OS_ERR* )&err); (处理收到的信息) OSTimeDlyHMSM(0,0,0,?,OS_OPT_TIME_HMSM_STRICT,&err); 延时?ms进行任务调度 } 1、这里延时是设置成500ms?还是需要刨去处理信息的时间呢,比如500-15ms?还是可以设置的短一些,比如250ms以方便相应串口中断post来的数据呢? 2、怎样使这个任务能及时处理4个串口发来的数据呢(4个串口并不是同时发送数据)?处理的时候需要使用临界区吗? 3、如果任务在处理串口1发来的数据未处理完,此时串口2也发来数据,会出现什么情况呢?如果处理函数部分设置了临界区,串口2的数据会怎样呢? 暂时想到这些,烦请各位大神指点一下。 |
|
相关推荐
3个回答
|
|
当然不含处理的时间,但是没你说的那面夸张了
|
|
|
|
谢谢原子哥指点
|
|
|
|
多练习吧,积累经验
|
|
|
|
只有小组成员才能发言,加入小组>>
810 浏览 0 评论
1161 浏览 1 评论
2535 浏览 5 评论
2871 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2719 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1107浏览 3评论
198浏览 2评论
464浏览 2评论
378浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
459浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 23:29 , Processed in 1.459633 second(s), Total 84, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号