void SCH_Dispatch_Tasks(void)
{
u8 Index = 0;
for(Index = 0; Index < SCH_MAX_TASKS; Index++)
{
if(g_SCHTasks[Index].RunMe > 0)
{
(g_SCHTasks[Index].pTask)(); /** 执行改函数之前Index=0,但是执行完之后Index=1了,求解,为什么啊?????? **/
g_SCHTasks[Index].RunMe = 0;
if(g_SCHTasks[Index].Period == 0)
{
SCH_Delete_Task(Index);
}
}
}
}
执行完回调函数之后,局部变量被改变了,为什么啊?该怎么查找原因啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
看清楚了!人家循环还没有结束呢。
多半是stack设置太小了,或者有指针溢出
一周热门 更多>