?? demo_interface.c
字號:
/*********************************************************************************************
* File: demo_interface.c
* Author: embest
* Desc: Embest DEMO
* History:
*********************************************************************************************/
#include "demo.h"
/*------------------------------------------------------------------------------------------*/
/* extern variables */
/*------------------------------------------------------------------------------------------*/
extern const UINT8T g_ucBitmap1[1][76800];
/*------------------------------------------------------------------------------------------*/
/* global variables */
/*------------------------------------------------------------------------------------------*/
int f_nPadRow=20;
// 1
int f_nTopicCol=80,f_nTopicRow=20;
// 2
int f_nLabelCol=90,f_nLabelRow=70;
// 3
int f_nItemCol=110,f_nItemRow=70;
// 4
int f_nDescCol=35,f_nDescRow=50;
// 5
int f_nInfoCol=35,f_nInfoRow=120;
// 6 Return coordinate
int f_nRetCol=110,f_nRetRow=210;
char * RetInfo[] =
{
"Any Key to Exit...",
"Repress Key-2 to Exit",
"Embest Info&Tech Co.,Ltd.",
"Press Key Fun to Exit"
};
struct menu
{
UINT8T ucLabel;
UINT8T * ucItem;
// UINT8T ucKeyValue;
// int function;
};
struct menu mainmenu[2] =
{
'1',"實驗平臺簡介", //'1',(void *)disp_submenu(1),
'2',"測試實驗例程", //'2',(void *)disp_submenu(2),
};
struct menu submenu[22] =
{
'1',"基本接口實驗", //'1',(void *)disp_submenu(3),
'2',"人機接口實驗", //'2',(void *)disp_submenu(4),
'3',"通信音頻接口實驗", //'3',(void *)disp_submenu(5),
'4',"基礎應用實驗", //'4',(void *)disp_submenu(6),
'5',"高級應用實驗", //'5',(void *)disp_submenu(7),
'1',"存儲器實驗", //'1',(void *)disp_submenu(8),
'2',"I/O接口實驗", //'2',(void *)disp_submenu(9),
'3',"中斷測試實驗", //'3',(void *)disp_submenu(10),
'4',"串口測試實驗", //'4',(void *)disp_submenu(11),
'5',"實時時鐘實驗", //'5',(void *)disp_submenu(12),
'6',"數碼管實驗", //'6',(void *)disp_submenu(13),
'1',"液晶顯示實驗", //'1',(void *)disp_submenu(14),
'2',"鍵盤測試實驗", //'2',(void *)disp_submenu(15),
'3',"觸摸屏測試實驗", //'3',(void *)disp_submenu(16),
'1',"IIC串行通信實驗", //'1',(void *)disp_submenu(17),
'2',"音頻接口實驗", //'2',(void *)disp_submenu(18),
'3',"SPI接口實驗", //'3',(void *)disp_submenu(19),
'1',"A/D轉換實驗", //'1',(void *)disp_submenu(20),
'2',"PWM步進電機控制實驗", //'2',(void *)disp_submenu(21),
'1',"IDE硬盤實驗", //'1',(void *)disp_submenu(22),未添加
'1',"GPS模塊控制實驗", //'2',(void *)disp_submenu(23),
'2',"GPRS模塊控制實驗", //'3',(void *)disp_submenu(24),
};
/*********************************************************************************************
* name: interface_index
* func: this function display the background and add a index number(n) to the interface
* para: none
* ret: none
* modify:
* comment:
********************************************************************************************/
void interface_index(int n)
{
f_nInterface = n; // select the interface
// BitmapView((UINT8T*)(g_ucBitmap1[0])); // print the background on lcd
BitmapViewCstn8Bit((UINT8T*)(g_ucBitmap1[0]));
}
/*********************************************************************************************
* name: disp_mainmenu
* func: this function display the mainmenu
* para: none
* ret: none
* modify:
* comment:
********************************************************************************************/
void disp_mainmenu() //英蓓特演示程序
{
int i;
char mainTopic[] = "英蓓特演示程序";
interface_index(0);
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,mainTopic);
for(i = 0; i < 2; i++)
{
lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&mainmenu[i].ucLabel);
lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,mainmenu[i].ucItem);
}
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[2]);
}
/*********************************************************************************************
* name: disp_submenu
* func: this function display the submenu
* para: none
* ret: none
* modify:
* comment:
********************************************************************************************/
void disp_submenu(int n)
{
int i;
char boardDesc[] = "Embest EduKit系統是英蓓特公司自主研發的全功能ARM開發板,支持S3C44B0/S3C2410等多個處理器,資源豐富,提供嵌入式系統開發所需的大部分設備,如串口/以太網/USB/音頻/液晶屏/觸摸屏/大容量Flash&SDRAM/4x4鍵盤等。用戶不僅可以在該平臺完成實驗系統提供的例程,還可以參考該平臺設計自己的目標系統。";
interface_index(n);
switch(f_nInterface)
{
case 1: //實驗平臺簡介
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,mainmenu[0].ucItem);
lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,boardDesc);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 2: //測試實驗例程
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,mainmenu[1].ucItem);
for(i = 0; i < 5; i++)
{
lcd_disp_str16(f_nLabelCol,f_nLabelRow+f_nPadRow*i,RED,&submenu[i].ucLabel);
lcd_disp_str16(f_nItemCol,f_nItemRow+f_nPadRow*i,BLUE,submenu[i].ucItem);
}
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 3: //基本接口實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[0].ucItem);
for(i = 0; i < 3; i++)
{
lcd_disp_str16(f_nLabelCol-50,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+5].ucLabel);
lcd_disp_str16(f_nItemCol-50,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+5].ucItem);
lcd_disp_str16(f_nLabelCol+90,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+8].ucLabel);
lcd_disp_str16(f_nItemCol+90,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+8].ucItem);
}
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 4: //人機接口實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[1].ucItem);
for(i = 0; i < 3; i++)
{
lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+11].ucLabel);
lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+11].ucItem);
}
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 5: //通信音頻接口實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[2].ucItem);
for(i = 0; i < 2; i++)
{
lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+14].ucLabel);
lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+14].ucItem);
}
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 6: //基礎應用實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[3].ucItem);
for(i = 0; i < 2; i++)
{
lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+17].ucLabel);
lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+17].ucItem);
}
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 7: //高級應用實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[4].ucItem);
for(i = 0; i < 2; i++)
{
lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+20].ucLabel);
lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+20].ucItem);
}
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 8: //存儲器實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[5].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 9: //I/O接口實驗
lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[6].ucItem);
lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,"請觀察系統的四個發光二極管的亮滅");
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 10: //中斷實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[7].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 11: //UART實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[8].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 12: //RTC實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[9].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 13: //數碼管實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[10].ucItem);
lcd_disp_str16(f_nDescCol,f_nDescRow+f_nPadRow,BLUE,"本實驗在八段數碼管上循環顯示數字");
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 14: //液晶顯示實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[11].ucItem);
lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,"本實驗先在液晶屏上輸出字符和漢字,然后畫出四個矩形框,再循環顯示圖片");
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 15: //鍵盤測試實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[12].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[1]);
break;
case 16: //觸摸屏測試實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[13].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 17: //IIC串行通信實驗
lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[14].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 18: //音頻接口實驗
lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[15].ucItem);
lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,"請通過音頻輸出口收聽播放的音樂");
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 19: //SPI接口實驗
// lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[16].ucItem);
// lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 20: //A/D轉換實驗
lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[17].ucItem);
lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,"旋轉AIN2觀察屏幕輸出");
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 21: //PWM步進電機控制實驗
lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[18].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[3]);
break;
case 22: //IDE硬盤實驗
lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[19].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 23: //GPS模塊控制實驗
lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[20].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
case 24: //GPRS模塊控制實驗
lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[21].ucItem);
lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
break;
default:break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -