逻辑错误

xiaoxiao2021-03-01  15

void Task_T3(void *p_arg) { (void) p_arg; while(1) { Test_Log(T3_dev,KeyOpen); T2Bt(Task_T3_ID,1,1); //发送测试结束。 printf("%s","Task_T3 ing\n"); OSTimeDlyHMSM(0, 0, 0, 100); } }

程序跑起来不对劲,逻辑有问题。一是在死循环里面也就是任务里面写了return!在单片机里面是不能return的 必须死循环

2就是上面的逻辑有问题,死循环里面搞一个死循环不对!

效果就是里面的死循环结束以后,出来,外面是死循环,一会儿又进到这里面去了。

正确的做法是葫芦行的 一个循环后面再来一个。

void Task_T1(void *p_arg) { u8 res=0; (void) p_arg; res=Test_Log(T1_dev,KeyOpen);//测试门内按键开门//死在里面 直到结束 异常提前返回 T2Bt(Task_T1_ID,KeyOpen,res); res=Test_Log(T1_dev,CardOpen);//测试刷卡开门 //死在里面 直到结束 异常提前返回 T2Bt(Task_T1_ID,CardOpen,res); while(1) { printf("%s","Task_T1 finished\n"); OSTimeDlyHMSM(0, 0, 0, 500); } }

 

转载请注明原文地址: https://www.6miu.com/read-3450084.html

最新回复(0)