?? menu.c
字號:
#include "app_ex.h"
#include "hal.h"
#include "lcd128_64.h"
#include "string.h"
#include "Font.h"
#include "guangming.h"
#include "potentiometer.h"
#include "sensormenu.h"
INT8U NowItem = 0;
INT8U FirstItem = 0;
INT8U TopDisp = 1;
unsigned char MenuItem[10][17]; //菜單緩沖區(qū)
extern INT8U ContrastValue;
extern void clockmodes_main(void);
extern void random_main(void);
extern void power_modes_main(void);
extern void dma_main(void);
extern void aes_main(void);
extern void adc_main(void);
void Page1Display(INT8U ss, INT8U tt);
INT8U DrawMenu(INT8U MenuItem[][17] , INT8U MenuNo);
void MenuMenuDisp(void);
void Page0Display(void);
void SettingDisp(void);
void DoSetContrast(void);
void LanguageDisp(void);
void BackLampDisp(void);
//*********************************************************************************
//函數(shù)名:INT8U DrawMenu(INT8U MenuItem[][16] , INT8U MenuNo)
//功能:菜單顯示
//輸入:無
//輸出:無
//*********************************************************************************
INT8U DrawMenu(INT8U MenuItem[][17] , INT8U MenuNo)
{
INT8U ii;
INT8U key;
INT8U NowScreen = 1;
ClearScreen();
Page0Display();
while(1)
{
if(NowScreen)
{
NowScreen = 0;
if(MenuNo > 2)
{
for(ii = 0 ; ii < 3 ; ii++)
{
if(NowItem != ii)
{
Print((ii*2+2),0,MenuItem[FirstItem + ii],1);
}
else
{
Print((ii*2+2),0,MenuItem[FirstItem + ii],0);
}
}
}
else
{
for(ii = 0 ; ii < 2 ; ii++)
{
if(NowItem != ii)
{
Print((ii*2+2),0,MenuItem[FirstItem + ii],1);
}
else
{
Print((ii*2+2),0,MenuItem[FirstItem + ii],0);
}
}
}
//Page1Display((FirstItem + NowItem),(MenuNo+1));
while(ScanKey() != 0xff);
halWait(5);
}
key = ScanKey();
if(K_UP == key)
{
while(ScanKey() == K_UP);
if(NowItem > 0) NowItem -= 1;
else if(FirstItem > 0) FirstItem -= 1;
NowScreen = 1;
}
// /*
if(K_DOWN == key)
{
while(ScanKey() == K_DOWN);
if(MenuNo > 2)
{
if(NowItem < 2) NowItem += 1; //顯示的菜單不是屏上顯示的最后一條
else if((FirstItem + 3) < MenuNo) FirstItem += 1; //首條菜單后移一條,比如將顯示菜單由123改為234
else //首條菜單+3>菜單總數(shù)
{
FirstItem = 0;
NowItem = 0;
}
}
else
{
if(NowItem < 1) NowItem += 1; //如果菜單
}
NowScreen = 1;
}
// */
/*
if(K_DOWN == key)
{
while(ScanKey() == K_DOWN);
if(MenuNo > 2)//菜單數(shù)大于2
{
if(NowItem < 2) NowItem += 1; //顯示的菜單不是屏上顯示的最后一條
else if((FirstItem + 3) < MenuNo) //顯示第一條菜單的編號<菜單數(shù)目
{
FirstItem += 1; //首條菜單后移一條,比如將顯示菜單由123改為234
}
if((FirstItem + 3) >= MenuNo) //首條菜單+3>菜單總數(shù)
{
FirstItem = 0; //從第一條開始顯示
NowItem = 0;
}
NowScreen = 1; //下一次刷屏
}
else //總菜單數(shù)目<2
{
if(NowItem < 1) NowItem += 1; //選擇將菜單后移
NowScreen = 1; //刷屏
}
}
*/
if(K_OK == key)
{
while(ScanKey() == K_OK);
halWait(5);
return FirstItem + NowItem;
}
if(K_CANCEL == key)
{
while(ScanKey() == K_CANCEL);
halWait(5);
return 0xff;
}
}
}
//*********************************************************************************
//函數(shù)名:void TurnOnDisp(void)
//功能:開機畫面顯示
//輸入:無
//輸出:無
//*********************************************************************************
void TurnOnDisp(void)
{
INT8U i;
LoadICO();
for(i=0; i<12; i++)
halWait(200);
}
//*********************************************************************************
//函數(shù)名:void MenuMenuDisp( void )
//功能:主菜單顯示
//輸入:無
//輸出:無
//*********************************************************************************
void MenuMenuDisp( void )
{
INT8U sel;
/*
//if(LanguageSel == 1)
//{
strcpy((char*)MenuItem[0] ,"1:RF Test ");
strcpy((char*)MenuItem[1] ,"2:Stop Watch ");
strcpy((char*)MenuItem[2] ,"3:UART ");
strcpy((char*)MenuItem[3] ,"4:CllckModes ");
strcpy((char*)MenuItem[4] ,"5:Random ");
strcpy((char*)MenuItem[5] ,"6:AES ");
strcpy((char*)MenuItem[6] ,"7:DMA ");
strcpy((char*)MenuItem[7] ,"8:Power ");
strcpy((char*)MenuItem[8] ,"9:Setting ");
strcpy((char*)MenuItem[9] ,"10:SYS Sensor ");
//}
else
{
strcpy((char*)MenuItem[0] ,"1:無線測試 ");
strcpy((char*)MenuItem[1] ,"2:跑表 ");
strcpy((char*)MenuItem[2] ,"3:串口測試 ");
strcpy((char*)MenuItem[3] ,"4:時鐘模式 ");
strcpy((char*)MenuItem[4] ,"5:隨機數(shù)測試 ");
strcpy((char*)MenuItem[5] ,"6:加密解密測試 ");
strcpy((char*)MenuItem[6] ,"7:直接存貯測試 ");
strcpy((char*)MenuItem[7] ,"8:電源模式 ");
strcpy((char*)MenuItem[8] ,"9:表演板設(shè)定 ");
strcpy((char*)MenuItem[9] ,"10:傳感器 ");
}
*/
FirstItem = 0;
NowItem = 0;
TopDisp = 1;
while(1)
{
strcpy((char*)MenuItem[0] ,"1 :RF Test ");
strcpy((char*)MenuItem[1] ,"2 :Stop Watch ");
strcpy((char*)MenuItem[2] ,"3 :UART ");
strcpy((char*)MenuItem[3] ,"4 :ClockModes ");
strcpy((char*)MenuItem[4] ,"5 :Random ");
strcpy((char*)MenuItem[5] ,"6 :AES ");
strcpy((char*)MenuItem[6] ,"7 :DMA ");
strcpy((char*)MenuItem[7] ,"8 :Power ");
strcpy((char*)MenuItem[8] ,"9 :Setting ");
strcpy((char*)MenuItem[9] ,"10:SYS Sensor ");
sel = DrawMenu(MenuItem , 10);
while(ScanKey() != 0xff);
halWait(5);
switch(sel)
{
case 0:
{
TopDisp = 2;
RfTestDisp();
}break;
case 1:
{
stop_watch_main();
}break;
case 2:
{
uart_main();;
}break;
case 3:
{
clockmodes_main();
}break;
case 4:
{
random_main();
}break;
case 5:
{
aes_main();
}break;
case 6:
{
dma_main();
}break;
case 7:
{
power_modes_main();
}break;
case 8:
{
TopDisp = 3;
DoSetContrast();
}break;
case 9:
{
TopDisp = 12;
Sensor_Menu();
}break;
default:
break;
}
}//end while
}
//*********************************************************************************
//函數(shù)名:void SettingDisp(void)
//功能:參數(shù)設(shè)定菜單顯示
//輸入:無
//輸出:無
//*********************************************************************************
void SettingDisp(void)
{
INT8U sel;
/*
if(LanguageSel == 1)
{
strcpy((char*)MenuItem[0] ,"1:Contrast ");
strcpy((char*)MenuItem[1] ,"2:Language ");
}
else
{
strcpy((char*)MenuItem[0] ,"1:對比度設(shè)定 ");
strcpy((char*)MenuItem[1] ,"2:語言設(shè)定 ");
}
*/
strcpy((char*)MenuItem[0] ,"1:Contrast ");
FirstItem = 0;
NowItem = 0;
while(1)
{
sel = DrawMenu(MenuItem , 1);
switch(sel)
{
case 0:
{
DoSetContrast();
}break;
/*
case 1:
{
LanguageDisp();
}break;
*/
case 0xff:
{
return;
}
}
}
}
//*********************************************************************************
//函數(shù)名:void BackLampDisp(void)
//功能:背光設(shè)定菜單顯示
//輸入:無
//輸出:無
//*********************************************************************************
void BackLampDisp(void)
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -