📄 mainmenu.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 + -