完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
程序如下,在main()中就是创建了一个start_task任务,在start_task任务中创建了如下task1_task和task2_task任务.程序现象:同时按下key0和key1,会在串口打印出来~~~
问题在程序注释部分,恳请大神指教~~~ [C] 纯文本查看 复制代码 void task1_task(void *p_arg){ u8 key = 0; OS_FLAGS flag1, flag2; OS_ERR err; p_arg = p_arg; while(1) { key = KEY_Scan(0); if(key == KEY0_PRES) { flag1 = OSFlagPost((OS_FLAG_GRP *)&EventFlags, (OS_FLAGS )KEY0_FLAG, (OS_OPT )OS_OPT_POST_FLAG_SET, (OS_ERR *)&err); printf("key0's value = %drn", flag1); } if(key == KEY1_PRES) { flag2 = OSFlagPost((OS_FLAG_GRP *)&EventFlags, (OS_FLAGS )KEY1_FLAG, (OS_OPT )OS_OPT_POST_FLAG_SET, (OS_ERR *)&err); printf("key1's value = %drn", flag2); } //OStimeDlyHMSM(0, 0, 0, 10, (OS_OPT)OS_OPT_TIME_PERIODIC, &err); //我知道,在OSTimeDlyHMSM()中会进行任务调度, //可是我把这2句都注释掉,程序仍然OK, //我不知道程序在哪里进行任务调度的,恳请指教 }}void task2_task(void *p_arg){ OS_ERR err; OS_FLAGS flag; p_arg = p_arg; while(1) { flag = OSFlagPend((OS_FLAG_GRP *)&EventFlags, (OS_FLAGS )KEY0_FLAG+KEY1_FLAG, (OS_TICK )0, (OS_OPT )OS_OPT_PEND_FLAG_SET_ALL +OS_OPT_PEND_FLAG_CONSUME, (CPU_TS *)0, (OS_ERR *)&err); printf("task2_pending = %drn", flag); //OSTimeDlyHMSM(0, 0, 0, 10, (OS_OPT)OS_OPT_TIME_PERIODIC, &err); //这里也被注释掉了 }} |
|
相关推荐
1个回答
|
|
systic中断里面,会任务调度啊。另外,你的pend也会。
|
|
|
|
只有小组成员才能发言,加入小组>>
798 浏览 0 评论
1155 浏览 1 评论
2531 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2713 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1086浏览 3评论
195浏览 2评论
461浏览 2评论
374浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
455浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 09:36 , Processed in 1.151461 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号