📄 test1.c
字号:
/****************************************************************************************
* 文件名:TEST.C
* 功能:GUI测试及演示程序。
* 作者:黄绍斌
* 日期:2003.09.09
****************************************************************************************/
#include "config.h"
#define KEY_OK 3
#define KEY_NEXT 2
#define KEY_BACK 1
/****************************************************************************
* 名称:DelayNS()
* 功能:长软件延时
* 入口参数:dly 延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void DelayNS(uint32 dly)
{ uint32 i;
for(; dly>0; dly--)
for(i=0; i<5000; i++);
}
/****************************************************************************
* 名称:WaitKey()
* 功能:等待一个有效按键,并返回按键值。本函数有去抖功能。
* 入口参数:无
* 出口参数:返回按键盘值。
****************************************************************************/
uint8 WaitKey(void)
{ uint32 i;
uint8 key;
uint8 key_bak;
key = 0; // 接收按键
while(0==key)
{ key = ZLG7290_GetKey();
for(i=0; i<1000; i++);
}
key_bak = 1;
while(0!=key_bak) // 等待按键放开
{ key_bak = ZLG7290_GetKey();
for(i=0; i<1000; i++);
}
return(key);
}
/****************************************************************************
* 名称:DispLog()
* 功能:显示LOG,用坚线填充屏幕(填充0xAA)。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void DispLog(void)
{ GUI_FillSCR(0xAA); // 填充0xAA
DelayNS(30);
}
/****************************************************************************
* 名称:WaitAKey()
* 功能:等待任一个有效按键,并返回。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void WaitAKey(void)
{ uint8 key;
while(1)
{ key = WaitKey();
if(key==KEY_NEXT) return;
if(key==KEY_BACK) return;
if(key==KEY_OK) return;
}
}
/****************************************************************************
* 名称:DemoLine()
* 功能:绘画直线演示。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void DemoLine(void)
{ WINDOWS demow;
/* 显示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Line for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
/* 打钩 */
GUI_Line(90, 60, 110, 90, 1);
GUI_Line(110, 90, 190, 50, 1);
GUI_LineWith(50, 60, 70, 90, 3, 1);
GUI_LineWith(70, 90, 170, 40, 3, 1);
/* 画垂直线及水平线 */
GUI_RLine(70, 45, 70, 1);
GUI_HLine(140, 85, 180, 1);
WaitAKey(); // 等待一按键
GUI_WindowsHide(&demow);
}
/****************************************************************************
* 名称:DemoCircle()
* 功能:绘画圆演示。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void DemoCircle(void)
{ WINDOWS demow;
/* 显示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Circle for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
/* 画两个圆 */
GUI_CircleFill(75, 60, 15, 1);
GUI_Circle(100, 70, 5, 1);
/* 画两个交圆,并对交点进行填充 */
GUI_Circle(135, 65, 20, 1);
GUI_Circle(155, 65, 20, 1);
GUI_FloodFill(145, 65, 1);
WaitAKey(); // 等待一按键
GUI_WindowsHide(&demow);
}
/****************************************************************************
* 名称:DemoArc()
* 功能:绘画圆弧及扇形演示。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void DemoArc(void)
{ WINDOWS demow;
/* 显示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Arc for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
/* 画两个90度角的弧(第3、1像限) */
GUI_Arc4(75, 70, 20, 3, 1);
GUI_Arc4(65, 70, 20, 1, 1);
GUI_Pieslice(110, 75, 20, 0, 135, 1);
GUI_Arc(130, 60, 20, 30, 90, 1);
GUI_Pieslice(160, 70, 20, 100, 0, 1);
GUI_FloodFill(165, 72, 1);
WaitAKey(); // 等待一按键
GUI_WindowsHide(&demow);
}
/****************************************************************************
* 名称:DemoEllipse()
* 功能:绘画随圆演示。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void DemoEllipse(void)
{ WINDOWS demow;
/* 显示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Ellipse for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_Ellipse(50, 100, 50, 80, 1);
GUI_Ellipse(110, 130, 45, 90, 1);
GUI_EllipseFill(140, 190, 60, 90, 1);
WaitAKey(); // 等待一按键
GUI_WindowsHide(&demow);
}
/****************************************************************************
* 名称:DemoRectang()
* 功能:绘画矩形演示。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void DemoRectang(void)
{ WINDOWS demow;
/* 显示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Rectang for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
/* 画一个矩形及填充矩形 */
GUI_Rectangle(50, 45, 90, 85, 1);
GUI_Rectangle(75, 50, 100, 88, 1);
GUI_RectangleFill(80, 60, 130, 80, 1);
GUI_Rectangle(110, 50, 180, 90, 1);
GUI_Rectangle(135, 40, 190, 70, 1);
WaitAKey(); // 等待一按键
GUI_WindowsHide(&demow);
}
uint32 const mline[] = {120,40, 110,55, 90,60, 110,70, 120,90, 130,70, 150,60, 130,55, 120,40};
uint32 const poly5[] = {65,45, 50,60, 50,90, 80,90, 80,60, 65,45};
uint32 const poly4[] = {155,50, 190,50, 155,85, 190,85, 155,50};
/****************************************************************************
* 名称:DemoPoly()
* 功能:绘画多边形演示。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void DemoPoly(void)
{ WINDOWS demow;
/* 显示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Poly for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_LineS(poly5, 6, 1);
GUI_LineS(mline, 9, 1);
GUI_FloodFill(115, 55, 1);
GUI_LineS(poly4, 5, 1);
GUI_FloodFill(160, 52, 1);
WaitAKey(); // 等待一按键
GUI_WindowsHide(&demow);
}
/*-- 调入了一幅图像:C:\WINDOWS\Desktop\windows.bmp --*/
/*-- 宽度x高度=167x124 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=168x124 --*/
uint8 const windows[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0x83,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xF7,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0xEF,0xF0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x1F,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x00,0x1F,0xE7,0xFE,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x1F,0xEF,0xFD,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x3E,0x00,0x1F,0xFF,
0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3E,0x00,0x1F,0xFB,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x3F,0xF7,0xFE,0xFF,0xFF,0xFF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x7C,0x7F,0x3F,0xFF,0xFE,
0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,
0x00,0xFE,0x00,0x1F,0xFD,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xE0,0x00,0xFC,0x00,0x1F,0xF9,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x01,0xFC,0x3F,0xBF,0xF9,0xFF,
0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x03,0xF8,
0x00,0xFF,0x7F,0xF7,0xE1,0x1F,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0xF0,0x00,0xFE,0x7F,0xE7,0xE0,0x1F,0xF3,0xFF,0xFE,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x01,0xFE,0x7F,0xEF,0xE0,0x1F,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -