void Menu_Key_Func(unsigned char NowKey); //菜单按键功能
{
switch(NowKey)
{
case KEY_UP:
....
case KEY_doWN:
....
break;
case KEY_OK://KEY_OK, KEY_UP, KEY_ESC,
if(*(KeyTab[Menu_tree][Menu_tree_ptr]].Menu_NextTab)) //Menu_NextTab[0]不为0,是菜单
{
Menu_tree[Menu_tree_ptr+1]=KeyTab[Menu_tree][Menu_tree_ptr]].Menu_NextTab[Menu_item_ptr]);
Menu_tree_ptr++;
refur_Menu();
}
else
{
KeyFuncPtr=KeyTab[Menu_tree][Menu_tree_ptr]].CurrentOperate;
(*KeyFuncPtr)(); //这里执行操作
}
break;
}
看到别人的代码是如上写的。
当按下 KEY_OK时,才会执行 (*KeyFuncPtr)();
可否改成每次都执行这个函数,这个函数就是一个设置参数的任务,但改任务不是死循环,但是每次执行菜单时,都会进入这个程序,所以也不需要死循环。
|