完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
任务1按键发出信号量,任务2请求。串口打印信号量值,没有值显示,按下按键,LED0也不亮,说明发送信号量语句没有执行。不知道信号量哪里出问题了,求指教
OS_EVENT *Sem_Event; //定义一个信号量 int main(void) { delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(115200); LED_Init(); OSInit(); Sem_Event=OSSemCreate(0); //创建信号量 OSTaskCreate(start_task,(void*)0,(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO); OSStart(); KEY_Init(); } void led0_task(void *pdata) { u8 key; while(1) { LED0=0; key=KEY_Scan(1); if(key==KEY1_PRES)//按下按键,发送信号量 { OSSemPost(Sem_Event); LED0=1; delay_ms(500); printf("%d",Sem_Event); } OStimeDly(20); } } void led1_task(void *pdata) { INT8U err; while(1) { OSSemPend(Sem_Event,0,&err);//请求信号量 printf("%d",Sem_Event); LED1=0; delay_ms(500); LED1=1; OSTimeDly(20); } } |
|
相关推荐
4个回答
|
|
|
KEY_Init应该放到OS start之前!!
|
|
|
|
|
|
确实好用了,我想问下原子哥,原理是什么?
|
|
|
|
|
|
start之后的语句便不会运行了。。。。。呵呵
|
|
|
|
|
|
哦哦,确实
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1020浏览 1评论
1849浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1359浏览 1评论
1851浏览 0评论
1176浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 17:52 , Processed in 0.725949 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1937