完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
OS_EVENT *Sem_Event; //创建信号量 (最后面是串口打印数据值,与理想值不符,求指教!!)
int main(void) { uart_init(115200); OSInit(); Sem_Event=OSSemCreate(1); OSTaskCreate(start_task,(void*)0,(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO); OSStart(); } void high_task(void *pdata)//任务一,高优先级任务 { u8 err; while(1) { OStimeDlyHMSM(0,0,0,500); printf("high task Pend Semrn"); OSSemPend(Sem_Event,0,&err); //信号量请求 printf("high task Running!rn"); OSSemPost(Sem_Event); //信号量释放 OSTimeDlyHMSM(0,0,0,500); //延时500ms } } void middle_task(void *pdata)//任务二,中优先级任务 { while(1) { printf("middle task Running!rn"); OSTimeDlyHMSM(0,0,1,0); //延时1S } } void low_task(void *pdata)//任务三,低优先级任务 { static u32 times; u8 err; while(1) { OSSemPend(Sem_Event,0,&err); printf("low task Running!rn"); for(times=0;times<10000000;times++) { OS_Sched(); //任务调度 } OSSemPost(Sem_Event); OSTimeDlyHMSM(0,0,1,0); } } middle task Running! middle task Running! middle task Running! middle task Running! middle task Running! high task Running! middle task Running! high task Pend Sem high task Running! low task Running! middle task Running! high task Pend Sem |
|
相关推荐
1个回答
|
|
|
本人写的代码与视频一致,我觉得输出结果开始应该是
middle task Running! low task Running! high task Pend Sem! middle task Running! middle task Running! middle task Running! high task Running! 然后才是上图的那个输出 |
|
|
|
|
只有小组成员才能发言,加入小组>>
1022 浏览 1 评论
1852 浏览 0 评论
1833 浏览 1 评论
3258 浏览 5 评论
3585 浏览 9 评论
1026浏览 1评论
1853浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1364浏览 1评论
1856浏览 0评论
1181浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 20:18 , Processed in 0.589960 second(s), Total 44, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
688