完善资料让更多小伙伴认识你,还能领取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个回答
|
|
|
当然不含处理的时间,但是没你说的那面夸张了
|
|
|
|
|
|
谢谢原子哥指点
|
|
|
|
|
|
多练习吧,积累经验
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1022 浏览 1 评论
1852 浏览 0 评论
1833 浏览 1 评论
3258 浏览 5 评论
3585 浏览 9 评论
1022浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:45 , Processed in 0.685133 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1996