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

📄 glib.h

📁 ARM7(s3c44b0)开发平台LCD驱动程序
💻 H
字号:
/*
;************************************************************************************************************
;*				    				     北京达盛科技有限公司
;*                                     	    研    发    部
;*
;*                                 	    http://www.techsine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;*
;* 文件名称 : Glib.h	
;* 文件功能 : 该文件为GUI的图形显示程序API。
;* 补充说明 : 
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM开发小组
;* 修改日期 : 2004/00/00
;* 版本声明 : V1.0.1
;*-------------------------------------------- 历史版本信息 -------------------------------------------------
;* 文件作者 : ARM开发小组
;* 创建日期 : 2004/07/07
;* 版本声明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
*************************************************************************************************************
*/
 	#include"data.h"           	
	#define NULL  0
/*
*************************************************************************************************************
***                                          部分颜色定义                                                 ***
*************************************************************************************************************
*/
	#define GUI_BLACK         0x000000    
	#define GUI_BLUE          0x0000FF
	#define GUI_GREEN         0x00FF00
	#define GUI_CYAN          0xf0f000
	#define GUI_RED           0xFF0000
	#define GUI_MAGENTA       0x800080
	#define GUI_BROWN         0x2020a0
	#define GUI_DARKGRAY      0x404040
	#define GUI_GRAY          0x808080
	#define GUI_LIGHTGRAY     0xd0d0d0
	#define GUI_LIGHTBLUE     0xf08080
	#define GUI_LIGHTGREEN    0x80f080
	#define GUI_LIGHTCYAN     0x80f0f0
	#define GUI_LIGHTRED      0x8080f0
	#define GUI_LIGHTMAGENTA  0xf080f0
	#define GUI_YELLOW        0xf0f000  
	#define GUI_WHITE         0xffffff 

/*
*************************************************************************************************************
***                                            常量定义                                                   ***
*************************************************************************************************************
*/
	#define LCD_BPP 	8                 	//LCD的每像素的位数
	#define XMAX 		320					// LCD宽
	#define YMAX 		240					// LCD高

/*
*************************************************************************************************************
***                                          数字常量定义                                                 ***
*************************************************************************************************************
*/

	#define	________	0x0
	#define	_______W	0x1
	#define	______W_	0x2
	#define	______WW	0x3
	#define	_____W__	0x4
	#define	_____W_W	0x5
	#define	_____WW_	0x6
	#define	_____WWW	0x7
	#define	____W___	0x8
	#define	____W__W	0x9
	#define	____W_W_	0xa
	#define	____W_WW	0xb
	#define	____WW__	0xc
	#define	____WW_W	0xd
	#define	____WWW_	0xe
	#define	____WWWW	0xf
	#define	___W____	0x10
	#define	___W___W	0x11
	#define	___W__W_	0x12
	#define	___W__WW	0x13
	#define	___W_W__	0x14
	#define	___W_W_W	0x15
	#define	___W_WW_	0x16
	#define	___W_WWW	0x17
	#define	___WW___	0x18
	#define	___WW__W	0x19
	#define	___WW_W_	0x1a
	#define	___WW_WW	0x1b
	#define	___WWW__	0x1c
	#define	___WWW_W	0x1d
	#define	___WWWW_	0x1e
	#define	___WWWWW	0x1f
	#define	__W_____	0x20
	#define	__W____W	0x21
	#define	__W___W_	0x22
	#define	__W___WW	0x23
	#define	__W__W__	0x24
	#define	__W__W_W	0x25
	#define	__W__WW_	0x26
	#define	__W__WWW	0x27
	#define	__W_W___	0x28
	#define	__W_W__W	0x29
	#define	__W_W_W_	0x2a
	#define	__W_W_WW	0x2b
	#define	__W_WW__	0x2c
	#define	__W_WW_W	0x2d
	#define	__W_WWW_	0x2e
	#define	__W_WWWW	0x2f
	#define	__WW____	0x30
	#define	__WW___W	0x31
	#define	__WW__W_	0x32
	#define	__WW__WW	0x33
	#define	__WW_W__	0x34
	#define	__WW_W_W	0x35
	#define	__WW_WW_	0x36
	#define	__WW_WWW	0x37
	#define	__WWW___	0x38
	#define	__WWW__W	0x39
	#define	__WWW_W_	0x3a
	#define	__WWW_WW	0x3b
	#define	__WWWW__	0x3c
	#define	__WWWW_W	0x3d
	#define	__WWWWW_	0x3e
	#define	__WWWWWW	0x3f
	#define	_W______	0x40
	#define	_W_____W	0x41
	#define	_W____W_	0x42
	#define	_W____WW	0x43
	#define	_W___W__	0x44
	#define	_W___W_W	0x45
	#define	_W___WW_	0x46
	#define	_W___WWW	0x47
	#define	_W__W___	0x48
	#define	_W__W__W	0x49
	#define	_W__W_W_	0x4a
	#define	_W__W_WW	0x4b
	#define	_W__WW__	0x4c
	#define	_W__WW_W	0x4d
	#define	_W__WWW_	0x4e
	#define	_W__WWWW	0x4f
	#define	_W_W____	0x50
	#define	_W_W___W	0x51
	#define	_W_W__W_	0x52
	#define	_W_W__WW	0x53
	#define	_W_W_W__	0x54
	#define	_W_W_W_W	0x55
	#define	_W_W_WW_	0x56
	#define	_W_W_WWW	0x57
	#define	_W_WW___	0x58
	#define	_W_WW__W	0x59
	#define	_W_WW_W_	0x5a
	#define	_W_WW_WW	0x5b
	#define	_W_WWW__	0x5c
	#define	_W_WWW_W	0x5d
	#define	_W_WWWW_	0x5e
	#define	_W_WWWWW	0x5f
	#define	_WW_____	0x60
	#define	_WW____W	0x61
	#define	_WW___W_	0x62
	#define	_WW___WW	0x63
	#define	_WW__W__	0x64
	#define	_WW__W_W	0x65
	#define	_WW__WW_	0x66
	#define	_WW__WWW	0x67
	#define	_WW_W___	0x68
	#define	_WW_W__W	0x69
	#define	_WW_W_W_	0x6a
	#define	_WW_W_WW	0x6b
	#define	_WW_WW__	0x6c
	#define	_WW_WW_W	0x6d
	#define	_WW_WWW_	0x6e
	#define	_WW_WWWW	0x6f
	#define	_WWW____	0x70
	#define	_WWW___W	0x71
	#define	_WWW__W_	0x72
	#define	_WWW__WW	0x73
	#define	_WWW_W__	0x74
	#define	_WWW_W_W	0x75
	#define	_WWW_WW_	0x76
	#define	_WWW_WWW	0x77
	#define	_WWWW___	0x78
	#define	_WWWW__W	0x79
	#define	_WWWW_W_	0x7a
	#define	_WWWW_WW	0x7b
	#define	_WWWWW__	0x7c
	#define	_WWWWW_W	0x7d
	#define	_WWWWWW_	0x7e
	#define	_WWWWWWW	0x7f
	#define	W_______	0x80
	#define	W______W	0x81
	#define	W_____W_	0x82
	#define	W_____WW	0x83
	#define	W____W__	0x84
	#define	W____W_W	0x85
	#define	W____WW_	0x86
	#define	W____WWW	0x87
	#define	W___W___	0x88
	#define	W___W__W	0x89
	#define	W___W_W_	0x8a
	#define	W___W_WW	0x8b
	#define	W___WW__	0x8c
	#define	W___WW_W	0x8d
	#define	W___WWW_	0x8e
	#define	W___WWWW	0x8f
	#define	W__W____	0x90
	#define	W__W___W	0x91
	#define	W__W__W_	0x92
	#define	W__W__WW	0x93
	#define	W__W_W__	0x94
	#define	W__W_W_W	0x95
	#define	W__W_WW_	0x96
	#define	W__W_WWW	0x97
	#define	W__WW___	0x98
	#define	W__WW__W	0x99
	#define	W__WW_W_	0x9a
	#define W__WW_WW	0x9b
	#define W__WWW__	0x9c
	#define W__WWW_W	0x9d
	#define	W__WWWW_	0x9e
	#define	W__WWWWW	0x9f
	#define	W_W_____	0xa0
	#define	W_W____W	0xa1
	#define	W_W___W_	0xa2
	#define	W_W___WW	0xa3
	#define	W_W__W__	0xa4
	#define	W_W__W_W	0xa5
	#define	W_W__WW_	0xa6
	#define	W_W__WWW	0xa7
	#define	W_W_W___	0xa8
	#define	W_W_W__W	0xa9
	#define	W_W_W_W_	0xaa
	#define	W_W_W_WW	0xab
	#define	W_W_WW__	0xac
	#define	W_W_WW_W	0xad
	#define	W_W_WWW_	0xae
	#define	W_W_WWWW	0xaf
	#define	W_WW____	0xb0
	#define W_WW___W	0xb1
	#define	W_WW__W_	0xb2
	#define	W_WW__WW	0xb3
	#define	W_WW_W__	0xb4
	#define	W_WW_W_W	0xb5
	#define	W_WW_WW_	0xb6
	#define	W_WW_WWW	0xb7
	#define	W_WWW___	0xb8
	#define	W_WWW__W	0xb9
	#define	W_WWW_W_	0xba
	#define	W_WWW_WW	0xbb
	#define	W_WWWW__	0xbc
	#define	W_WWWW_W	0xbd
	#define	W_WWWWW_	0xbe
	#define	W_WWWWWW	0xbf
	#define	WW______	0xc0
	#define	WW_____W	0xc1
	#define	WW____W_	0xc2
	#define	WW____WW	0xc3
	#define	WW___W__	0xc4
	#define	WW___W_W	0xc5
	#define	WW___WW_	0xc6
	#define	WW___WWW	0xc7
	#define	WW__W___	0xc8
	#define	WW__W__W	0xc9
	#define	WW__W_W_	0xca
	#define	WW__W_WW	0xcb
	#define	WW__WW__	0xcc
	#define	WW__WW_W	0xcd
	#define	WW__WWW_	0xce
	#define WW__WWWW	0xcf
	#define	WW_W____	0xd0
	#define	WW_W___W	0xd1
	#define	WW_W__W_	0xd2
	#define	WW_W__WW	0xd3
	#define	WW_W_W__	0xd4
	#define	WW_W_W_W	0xd5
	#define	WW_W_WW_	0xd6
	#define	WW_W_WWW	0xd7
	#define	WW_WW___	0xd8
	#define	WW_WW__W	0xd9
	#define	WW_WW_W_	0xda
	#define	WW_WW_WW	0xdb
	#define	WW_WWW__	0xdc
	#define	WW_WWW_W	0xdd
	#define	WW_WWWW_	0xde
	#define	WW_WWWWW	0xdf
	#define	WWW_____	0xe0
	#define	WWW____W	0xe1
	#define	WWW___W_	0xe2
	#define	WWW___WW	0xe3
	#define	WWW__W__	0xe4
	#define	WWW__W_W	0xe5
	#define	WWW__WW_	0xe6
	#define	WWW__WWW	0xe7
	#define	WWW_W___	0xe8
	#define	WWW_W__W	0xe9
	#define	WWW_W_W_	0xea
	#define	WWW_W_WW	0xeb
	#define	WWW_WW__	0xec
	#define	WWW_WW_W	0xed
	#define	WWW_WWW_	0xee
	#define	WWW_WWWW	0xef
	#define	WWWW____	0xf0
	#define	WWWW___W	0xf1
	#define	WWWW__W_	0xf2
	#define	WWWW__WW	0xf3
	#define	WWWW_W__	0xf4
	#define	WWWW_W_W	0xf5
	#define	WWWW_WW_	0xf6
	#define	WWWW_WWW	0xf7
	#define	WWWWW___	0xf8
	#define	WWWWW__W	0xf9
	#define	WWWWW_W_	0xfa
	#define	WWWWW_WW	0xfb
	#define	WWWWWW__	0xfc
	#define	WWWWWW_W	0xfd
	#define	WWWWWWW_	0xfe
	#define	WWWWWWWW	0xff 

/*
*************************************************************************************************************
***                                          重定义数据结构                                               ***
*************************************************************************************************************
*/
 	typedef struct{
  		void* 	pData;
  		U16  	FirstChar;
  		U16  	LastChar;
  		U8   	XSize;
  		U8    	XDist;
  		U8    	BytesPerLine;
		}GUI_FONT_MONO ;
	

 	typedef struct{
  		
  		U8 YSize;
  		U8 YDist;
  		U8 XMag;
  		U8 YMag;
  		const GUI_FONT_MONO* pMono;
 		}GUI_FONT;

 	typedef struct {
  		const GUI_FONT* 	pAFont;
  		I16P 				LBorder;
  		I16P 				DispPosX;
  		I16P 				DispPosY;
		}Context; 


 	typedef struct {
		I16 x0;
	 	I16 y0;
	 	I16 x1;
	 	I16 y1; 
		}GUI_RECT;
/*
*************************************************************************************************************
***                                          中文支持定义                                                 ***
*************************************************************************************************************
*/
	
	#define 	CHINESE_STARTCHAR     0xAA
	#define 	CHINESE_ENDCHAR       0xBB
	
	#define 	CN_start            "\xAA"                
	#define 	CN_end           	"\xBB"		
/*
*************************************************************************************************************
**                                      用户调用显示的API                                                  **
*************************************************************************************************************
*/

	extern U32 	GUI_Init    (void);                                       						//GUI初始化
	extern void Draw_Point  (U16 x, U16 y); 													//绘制点API
	extern U32  Get_Point   (U16 x, U16 y); 													//得到点API
	extern void Draw_HLine  (U16 y0, U16 x0, U16 x1); 										//绘制水平线API
	extern void Draw_VLine  (U16 x0, U16 y0, U16 y1); 										//绘制竖直线API
	extern void Draw_Line   (I32 x1,I32 y1,I32 x2,I32 y2);										//绘制线API
	extern void Draw_Circle (U32 x0, U32 y0, U32 r); 											//绘制圆API
	extern void Fill_Circle (U16 x0, U16 y0, U16 r); 											//填充圆API
	extern void Fill_Rect   (U16 x0, U16 y0, U16 x1, U16 y1); 								  //填充区域API
	extern void Set_Color   (U32 color);   												  //设定前景颜色API
	extern void Set_BkColor (U32 color);   												  //设定背景颜色API
	extern void Set_Font    (GUI_FONT* pFont); 											  //设定字体类型API
	extern void Disp_String (const I8 *s, I16 x, I16 y); 				                      //显示字体API
 
/*
************************************************************************************************************
*                                        中层绘图API                                                       *
************************************************************************************************************
*/

	extern void LCD_SetColor      (U16 PhyColor);
	extern void LCD_SetBkColor    (U16 PhyColor);
	extern U16  LCD_Init          (U8 Lcd_Bpp);
	extern void LCD_DrawPixel     (U16 x, U16 y); 
	extern U32  LCD_GetPixel      (U16 x, U16 y); 
	extern void LCD_DrawHLine     (U16 x0, U16 y,  U16 x1); 
	extern void LCD_DrawVLine     (U16 x, U16 y0,  U16 y1); 
	extern void LCD_FillRect      (U16 x0, U16 y0, U16 x1, U16 y1);
	extern void LCD_L0_DrawBitmap (U16 x0, U16 y0,U16 xsize, U16 ysize,U16 BitsPerPixel,U16 BytesPerLine,
							const U8* pData, U16 Diff,
                       		const U16* pTrans);
/*
************************************************************************************************************
*                                        键盘API                                                           *
************************************************************************************************************
*/   
/*   	extern void Key_Init 		  (void);
	extern I32  GUI_GetKey 		  (void);
	extern void GUI_StoreKey 	  (I32 key);
	extern void Check_Init 		  (void);
	extern I32  GUI_WaitKey 	  (void);
	extern void GUI_ClearKeyBuffer(void);*/
/*
************************************************************************************************************
*                                        时间API                                                           *
************************************************************************************************************
*/	
/*	extern void  GUI_Delay (I32 period);
	extern I32   Get_Time  (void); */
/*
*************************************************************************************************************
***                                           键值定义                                                    ***
*************************************************************************************************************
*/
/*	#define 	GUI_KEY_BACKSPACE         8         
	#define 	GUI_KEY_TAB               9         
	#define 	GUI_KEY_ENTER             13        
	#define 	GUI_KEY_LEFT              16
	#define 	GUI_KEY_UP                17
	#define 	GUI_KEY_RIGHT             18
	#define 	GUI_KEY_DOWN              19
	#define 	GUI_KEY_HOME              23
	#define 	GUI_KEY_END               24
	#define 	GUI_KEY_SHIFT             25
	#define 	GUI_KEY_CONTROL           26
	#define 	GUI_KEY_ESCAPE            27        
	#define 	GUI_KEY_INSERT            29
	#define 	GUI_KEY_DELETE            30
	#define 	GUI_KEY_START             301
*/
/*
*****************************************************************************************************************
**                                                  结束文件                                                   **
*****************************************************************************************************************
*/

⌨️ 快捷键说明

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