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

📄 display.h

📁 基于S3C2410和SM501的彩屏控制器程序
💻 H
字号:
#ifndef DISPLAY_H
#define DISPLAY_H

//********************** Including Libs **********************
#include <math.h>
#include <string.h>
#include <stdio.h>
#include "comdef.h"
#include "global.h"
#include "cosine_CRT.h"


//**************** Structure & Type Definition ****************
typedef struct strcmapInfo
{
	int 	viewMem;		//已经加载在内存的地址
	unsigned long	haveReadLen;	//当前画面已经读出的长度
}strucMapInfo;

typedef struct ITEM_INFO_STRU
{
	short	dot;		//小数点位数
	short	digital;	//显示位数
	int		min,max;	//最小值、最大值
	short	x,y;		//光标显示位置 
	char	cmd[8];		//命令串
} SetDataInfoDef;



//********************** Macro Definition **********************
#define MAXITEMS	100				//每个设置画面最多允许的项数

#define SCREEN_WIDTH  	800
#define SCREEN_HEIGHT 	600
#define KEYBOARD_WIDTH	360
#define KEYBOARD_HEIGHT	300
#define LineHeight 		16

#define cLine 		0	// 实线
#define cBroken		1	// 虚线
#define BROKEN_LEN	5	//虚线的实虚间隔

#define PAGES			32		//每块nandflash的页数
#define PAGE_BYTES		512		//NandFlash每页字节数
#define BLOCK_BYTES		(PAGE_BYTES*PAGES)//nandflash每块字节数

#define MAX_BMP_NUMS		50			//最大页面数
#define MAX_ITEMS			100			//每页最多元件个数

#define NON_ADDR			0xffffffff
#define NAND_CAPCITY		0x4000000	//NandFlash容量:64M
#define BLOCKS				(NAND_CAPCITY/BLOCK_BYTES)	//NandFlash块数	

#define keyBoardOffX 40
#define keyBoardOffY 20

//----- 颜色定义 -----
#define 	COLOR_RED				RGB565(255,0,0)			// 红
#define		COLOR_DARK_RED			RGB565(128,0,0)			// 深红
#define 	COLOR_PINK				RGB565(255,128,255)		// 粉红
#define 	COLOR_GREEN				RGB565(0,255,0)			// 绿
#define 	COLOR_LIGHT_GREEN		RGB565(204,255,204)		// 浅绿
#define 	COLOR_DARK_GREEN		RGB565(0,51,0)			// 深绿
#define 	COLOR_ORANGE			RGB565(255,102,0)		// 橙
#define 	COLOR_LIGHT_ORANGE		RGB565(255,153,0)		// 浅橙
#define 	COLOR_YELLOW			RGB565(255,255,0)		// 黄
#define 	COLOR_GOLD				RGB565(255,104,0)		// 金
#define 	COLOR_LIGHT_YELLOW		RGB565(255,255,153)		// 浅黄
#define 	COLOR_BLUE				RGB565(0,0,255)			// 蓝
#define 	COLOR_LIGHT_BLUE		RGB565(0,128,255)		// 浅蓝
#define		COLOR_DARK_BLUE			RGB565(0,0,128)			// 深蓝
#define 	COLOR_BLUE_GREY			RGB565(102,102,153)		// 蓝灰
#define		COLOR_BROWN				RGB565(153,51,0)		// 褐
#define 	COLOR_BLACK 			RGB565(0,0,0)			// 黑
#define 	COLOR_WHITE 			RGB565(255,255,255)		// 白
#define 	COLOR_GREY				RGB565(192,192,192)		// 灰

#define 	NO_BACK_COLOR		0xffffffff	// 无背景色

#define COMMANDNUMS     16  //命令串条数
#define ModbusComm		1
#define FreeComm		0

#define PAGE_UP  		201		//上一页
#define PAGE_DOWN 		202		//下一页

#define RGB565(red,green,blue)  (((red>>3)<<11)|((green>>2)<<5)|(blue>>3))
#define GetAddress(x,y)	 	(CONFIG_SM501_MEM_BASE+(y)*SCREEN_WIDTH*2+(x)*2)

#define SCREEN_ADDR 	    0x20000000	//显存(液晶)基址

#define BMP_TMPRAM_ADDR  	0x30400000 	//下载画面/字库时存放内存临时地址
#define LZMA_ADDR			0x30500000 //解压数据存放地址
#define TEMP_LZMA_ADDR		0x30600000	//解压过程临时地址

#define SAVE_CURR_SCREEN 	0x30800000	//显示键盘前保存当前页面点阵
#define SAVE_MSG_SCREEN 	0x30900000  //显示信息前保存当前页面点阵

#define BMP_LOAD_ADDR		0x30A00000	//画面加载到内存起始地址

#define STATUS_MEMORY_ADDR   	0x33C00000		//状态列表在内存中地址
#define ERR_MEMORY_ADDR       	0x33C40000		//故障列表在内存中地址

#define SDRAM_ADDR_LCDBACK 	0x33D00000			//保存起始画面点阵(备份)

#define dwEnFontAddr 		0x33E00000			//8*16英文字库
#define dwEnFont1616 		(dwEnFontAddr + 4096) //16*16英文字库
#define dwEnFont1624 		(dwEnFontAddr + 12288) //16*24英文字库
#define dwEnFont2424 		(dwEnFontAddr + 24576) //24*24英文字库
#define dwEnFont2432 		(dwEnFontAddr + 43008) //24*32英文字库
#define dwEnFont3232 		(dwEnFontAddr + 67584) //32*32英文字库

#define dwEnFont3248 		(dwEnFontAddr + 100352) //32*48数字字库
#define dwEnFont3264 		(dwEnFontAddr + 103232) //32*64数字字库
#define dwEnFont4880 		(dwEnFontAddr + 107072) //48*80数字字库

#define dwChFontAddr 		(dwEnFontAddr + 114272) //24*24汉字字库



//********************** Local Function **********************
#ifdef __DISPLAY
	#define EXTERN
#else
	#define EXTERN	extern
#endif

EXTERN int Sqrt (DWORD x);
EXTERN void PutPixel (WORD x, WORD y,WORD color);
EXTERN WORD GetPixelColor (WORD x, WORD y);
EXTERN void ReversePutPixel (WORD x, WORD y);
EXTERN void ClearScreen (WORD wColor);
EXTERN void Line(WORD x1,WORD y1,WORD x2,WORD y2,WORD color,BYTE cType);
EXTERN void DrawLine (WORD x1,WORD y1,WORD x2,WORD y2,WORD color);
EXTERN BYTE BorderDeal (WORD *x1, WORD *y1, WORD *x2, WORD *y2);
EXTERN void GetCharSize (BYTE cfontSize,WORD *cCharSize,WORD *VSize);
EXTERN void ShowChar1616(int addr,WORD x,WORD y,WORD color,int bcolor);
EXTERN void ShowChar1624(int addr,WORD x,WORD y,WORD color,int bcolor);
EXTERN void ShowChar2424(int addr,WORD x,WORD y,WORD color,int bcolor);
EXTERN void ShowChar2432(int addr,WORD x,WORD y,WORD color,int bcolor);
EXTERN void ShowChar3232(int addr,WORD x,WORD y,WORD color,int bcolor);
EXTERN void ShowChar3248(int addr,WORD x,WORD y,WORD color,int bcolor);
EXTERN void ShowChar3264(int addr,WORD x,WORD y,WORD color,int bcolor);
EXTERN void ShowChar4880(int addr,WORD x,WORD y,WORD color,int bcolor);
EXTERN void ShowString(char *s,WORD x,WORD y,WORD fcolor,int bcolor,BYTE cfont);
EXTERN void ShowMsg(char *cmsg, char *emsg, DWORD wait);
EXTERN void FilledRectangle(WORD x1,WORD y1,WORD x2,WORD y2,WORD color1,WORD color2);
EXTERN void Circle(WORD x, WORD y, WORD radius, WORD color);
EXTERN void DrawCircle(WORD x, WORD y, WORD radius,WORD color,BYTE fill);
EXTERN void FillCircle(WORD x,WORD y,WORD radius,WORD color1,WORD color2);
EXTERN void Rectangle(WORD x1,WORD y1,WORD x2,WORD y2,WORD color,BYTE cType);
EXTERN void ReverseBlock(WORD x1,WORD y1,WORD x2,WORD y2);
EXTERN void RestoreArea(WORD x,WORD y,WORD width,WORD height);
EXTERN void ReKeyBoradBefor(WORD x,WORD y,WORD width,WORD height);
EXTERN void ShowTouched(WORD cx1,WORD cy1,WORD cx2,WORD cy2);
EXTERN void NumberDisplay (int data,BYTE dot,BYTE cDigital,WORD xx,WORD yy,WORD fColor,int bColor,BYTE fontSize);
EXTERN void DispFloat(int data, WORD dot,WORD digital, WORD x, WORD y, WORD fColor, WORD bColor,BYTE direct,BYTE cfont);
EXTERN void SaveCurrScreen (DWORD SaveAddr);
EXTERN void SaveCurrScreen(DWORD SaveAddr);
EXTERN void RestoreScreen(DWORD SaveAddr);
EXTERN void ShowString_back(char *s,WORD x,WORD y,WORD fColor,WORD bColor,BYTE cfont);
EXTERN void ShowStringAndBox(char *msg,WORD x,WORD y,int fcolor,int bcolor,BYTE cLeft,BYTE cTop,BYTE cfontSize);

#undef EXTERN


//********************** Extern Variable **********************
extern volatile int CONFIG_SM501_MEM_BASE;
/*
extern uchar cCommType;    //通讯类型0-自定通讯类型;1-Modbus通讯
extern int bmpAddr[MAX_BMP_NUMS];	//画面地址索引表
extern int bmpLens[MAX_BMP_NUMS];	//画面长度索引表
extern int bitbmpLens[MAX_BMP_NUMS];//画面点阵长度索引
extern unsigned char blockuse[BLOCKS];	//每块Nandflash使用情况:=0xff时表示未使用
extern strucMapInfo	mapInfo[MAX_BMP_NUMS];//画面信息
extern unsigned short wTouchX,wTouchY;//触摸位置

extern DWORD dwCommTime;
extern DWORD dwJumpTime; //画面跳转时间
extern unsigned char cCommErrCount;//通讯故障次数
extern unsigned char CurrBMP;		//当前页面号
extern unsigned char CurrIndex;		//当前元件索引
extern int SetData[MAX_ITEMS];//一个画面上的数据
extern unsigned short cLanguage; //语言选择
extern char cInitEnter[MAX_ITEMS];//是否第一次显示
extern int lastData[MAX_ITEMS];//上次通讯数值
extern short LastErrShow[16];
extern unsigned char cCommType;    //通讯类型0-自定通讯类型;1-Modbus通讯


extern	unsigned short SHOW_CHINESE;   
extern	unsigned short SHOW_ENGLISH;  
*/


//********************** Extern Function **********************
int abs(int);

//*****************************************************************
#endif

⌨️ 快捷键说明

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