用Proteus进行仿真,并且用AVR STUDIO进行了调试。可是总是有错误,最终发现问题出在:
以下程序,Task5执行完之后直接返回主函数,而非函数调用的地方,我还是头一次遇
到这种问题,请高手帮忙,多谢。附件里有程序和PROTEUS仿真。
void Task4(void *pdata)
{
pdata=pdata;
while(1)
{
show(4,2);
OSTimeDly(100);
}
}
void Task5(void *pdata)
{
show(5,3);
}
int main(void)
{
OSInit();
OSTaskCreate(Task1,0,&Task1Stk[OS_USER_TASK_STK_SIZE-1],1);
OSTaskCreate(Task2,0,&Task2Stk[OS_USER_TASK_STK_SIZE-1],2);
OSTaskCreate(Task3,0,&Task3Stk[OS_USER_TASK_STK_SIZE-1],3);
OSTaskCreate(Task4,0,&Task4Stk[OS_USER_TASK_STK_SIZE-1],5);
OSTaskCreate(Task5,0,&Task5Stk[OS_USER_TASK_STK_SIZE-1],4);
OSStart();
while(1)
{
show(9,0);
}
}
------解决方案--------------------
void Task4(void *pdata)
{
pdata=pdata; 这是什么意思,是不是应该先定义一个呢。
------解决方案--------------------