⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainmenu.c

📁 一个arm7实例
💻 C
字号:
/*******************************Copyright (c)**********************************
***************************************By Z.Q.Yang****************************/


/******************************************************************************
*文件名:mainmenu
*功能:主菜单相关服务函数
*头文件:"user.h","config.h"
*作者:Z.Q.Yang
*******************************************************************************/
#include"config.h"
#include"user.h"

uint8 const *IconName[]={"SLEEP","LED","GUI","PWM","IIC","LED","STKCHK","TIME","HELP","UART"};/*
定义的用于与选中的图标对应显示的字符数组*/

extern uint8 menuicon[10][72];          /*图标数组*/
/******************************************************************************
*函数名:MainMenu
*功能:主菜单函数
*入口参数:无
*出口参数:无
******************************************************************************/
void    MainMenu(void *pdata)
{
   // uint8 icon[10];
    uint8 i,*p;            /*局部变量*/
    iconflag=0;                     /*全局变量,用于确定选定哪一张图片*/
    while(1)
    {   
        GUIClr();
       // for(i=0;i<10;i++)icon[i]=0; /*清楚高亮标志位*/
     //    icon[iconflag]=1;
        if(iconflag<5)GUIPrintf(iconflag*26,24,1,"%s",IconName[iconflag]);
        else GUIPrintf((iconflag-5)*26,56,1,"%s",IconName[iconflag]);
        for(i=0;i<5;i++)
        { 
          p=&menuicon[i];
         //  if(icon[i]==1)
           {
           //      GUIDis24(i*26,0,p,24,0,1);
           }
          // else 
           GUIDis24(i*26,0,p,24,1,0);
        }  
            
        for(i=5;i<10;i++)
        { 
          p=&menuicon[i];
         //  if(icon[i]==1)
           {
              //   GUIDis24((i-5)*26,32,p,24,0,1);
           }
          // else 
           GUIDis24(i*26,32,p,24,1,0);
        }   
        if(iconflag<5)GUIDis24(iconflag*26,0,&menuicon[iconflag],24,0,1); /*反色显示选中图标*/
        else GUIDis24((iconflag-5)*26,32,&menuicon[iconflag],24,0,1); /*反色显示选中图标*/
          LCDRefresh(GUIBuf); 
          OSTaskSuspend(OS_PRIO_SELF);      /*挂起自己,等待key唤醒*/
    }
}

/******************************************************************************
*函数名:menukey
*功能:主菜单时键盘处理函数
*入口参数:i:读取的键值
*出口参数:无
******************************************************************************/
void menukey(uint8 i)
{
    if(i!='f')                      /*不是回车的情况*/
    {
        switch(i)
        {
            case 'a':               /*主界面不支持退出*/
                break;
            case 'b':
             {
                if(iconflag<5)iconflag+=5;
                else iconflag-=5;
            }break;
            case 'c':
            {
                if(iconflag<5)iconflag+=5;
                else iconflag-=5;
           }break;

            case 'd':
            {   
                if(iconflag==0)iconflag=9;
                else iconflag--;
            }break;
            case 'e':
            {
                if(iconflag==9)iconflag=0;
                else iconflag=1;            /*子函数嵌套变量置1,表明进入一级子菜单*/
            }break;
            case 'h':
                break;
            default:
            {
              iconflag=i;
           }break;
        }
        OSTaskResume(MenuPro);
          }
    else if(i=='f')         /*回车是进入子界面*/
    {
        subinit=1;
        subflag=1;
        OSTaskSuspend(MenuPro);
        OSTaskCreateExt(SubFun,(void *)0,&SubFunStk[TaskStkLen-1],SubFunPro,
                        SubFunID,&SubFunStk[0],TaskStkLen,(void *)0,OS_TASK_OPT_STK_CHK);
          //  OSTaskCreate(SubFun,(void *)0,&SubFunStk[TaskStkLen-1],SubFunPro);            
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -