📄 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 II系统是英蓓特公司自主研发的全功能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 + -