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

📄 menuteat.c~

📁 ucos2移植mega8上的完整应用
💻 C~
字号:

typedef struct menu_struct
{
	unsigned int flash id;
	unsigned int flash ok;
	unsigned int flash esc;
	unsigned int flash up;
	unsigned int flash down;
	unsigned char flash *Name;
	void (*CurrentOperate)();	
}MENU;

//主菜单 
char flash str1[]="PdN00dbn";
char flash str2[]="PUP00dbn";                    
char flash str3[]="FSL     ";
char flash str4[]="Att     "; 
char flash str5[]="dAC     ";
char flash str6[]="SEtup   ";
//子菜单1
char flash str31[]="F1   001";
char flash str32[]="F2   002";
char flash str33[]="F3   003";
char flash str34[]="F4   004";
char flash str35[]="F5   005";
char flash str36[]="F6   006";
char flash str37[]="F7   007";
char flash str38[]="F8   008";
//子菜单2
char flash str41[]="Att100db";
char flash str42[]="Att200db";
char flash str43[]="Att300db";
char flash str44[]="Att400db";
char flash str45[]="dAtt00db";
char flash str46[]="uAtt00db";  
//子菜单5
char flash str51[]="dAC1 001";
char flash str52[]="dAC2 002";
char flash str53[]="dAC3 003";
char flash str54[]="dAC4 004"; 

void MENU_adjust(void);

MENU nemu[]={
/*id,	ok,		esc,	up,		down,	name,	do	*/
{1,		999,	999,	999,	2,		str1,	MENU_adjust},
{2,		999,	999,	1,		3,		str2,	MENU_adjust},
{3,		31,		999,	2,		4,		str3,	MENU_adjust},
{4,		41,		999,	3,		5,		str4,	MENU_adjust},
{5,		51,		999,	4,		999,	str5,	MENU_adjust},

/*{11,	999,	1,		999,	12,		str11,	MENU_adjust},
{12,	999,	1,		11,		13,		str12,	MENU_adjust},
{13,	999,	1,		12,		14,		str13,	MENU_adjust},
{14,	999,	1,		13,		999,	str14,	MENU_adjust},

{21,	999,	2,		999,	22,		str21,	MENU_adjust},
{22,	999,	2,		21,		23,		str22,	MENU_adjust},
{23,	999,	2,		22,		24,		str23,	MENU_adjust},
{24,	999,	2,		23,		999,	str24,	MENU_adjust},
*/
{31,	999,	3,		999,	32,		str31,	MENU_adjust},
{32,	999,	3,		31,		33,		str32,	MENU_adjust},
{33,	999,	3,		32,		34,		str33,	MENU_adjust},
{34,	999,	3,		33,		35,		str34,	MENU_adjust},
{35,	999,	3,		34,		36,		str35,	MENU_adjust},
{36,	999,	3,		35,		37,		str36,	MENU_adjust},
{37,	999,	3,		36,		38,		str37,	MENU_adjust},
{38,	999,	3,		37,		999,	str38,	MENU_adjust},

{41,	999,	4,		999,	42,		str41,	MENU_adjust},
{42,	999,	4,		41,		43,		str42,	MENU_adjust},
{43,	999,	4,		42,		44,		str43,	MENU_adjust},
{44,	999,	4,		43,		45,		str44,	MENU_adjust},
{45,	999,	4,		44,		46,		str45,	MENU_adjust},
{46,	999,	4,		45,		999,	str46,	MENU_adjust},

{51,	999,	5,		999,	52,		str51,	MENU_adjust},
{52,	999,	5,		51,		53,		str52,	MENU_adjust},
{53,	999,	5,		52,		54,		str53,	MENU_adjust},
{54,	999,	5,		53,		999,	str54,	MENU_adjust}
};

MENU *menu_p;

#define KEY_UP 				0x1
#define KEY_DOWN            0x2
#define KEY_ENTER           0x3
#define KEY_ESC             0x4 
#define KEY_SUPER			0x5

void (*KeyFuncPtr)();

bit KEY_ADJUSTING;
void menu_select(unsigned char key)
{
	switch (key)
	{
		case KEY_UP:
		{
			if(KEY_ADJUSTING)
			{
				KeyFuncPtr = menu_p->CurrentOperate;
				(*KeyFuncPtr)();
			}
			else if(menu_p->up != 999)
			{
				menu_p = menu_p->up;
			}
			break;
		}
		case KEY_DOWN:
		{
			if(KEY_ADJUSTING)
			{
				KeyFuncPtr = menu_p->CurrentOperate;
				(*KeyFuncPtr)();
			}
			else if(menu_p->down != 999)
			{
				menu_p = menu_p->down;
			} 
			break;
		}         
		case KEY_ENTER:
		{
			if(menu_p->ok == 999 && menu_p->esc == 999)
			{
				break;
			}
			else if(menu_p->ok != 999)
			{
				menu_p = menu_p->ok;
			}
		}
	}	
}

⌨️ 快捷键说明

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