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

📄 lcd.h

📁 44b0处理器+UCOS操作系统+miniGUI源代码
💻 H
字号:
/***************************************************************************\
	Copyright (c) 2004-2007 threewater@up-tech.com, All rights reserved.
	by threewter	2004.4.26
\***************************************************************************/

/***************************************************************************\
    #说明: 
	----------------------------------  Bug  --------------------------------------

	----------------------------------  TODO list  --------------------------------------

	----------------------------------修正--------------------------------------
	2004-7-4	添加了LCD的分类信息

\***************************************************************************/

#include "../inc/def.h"
#include "../inc/sysconfig.h"

#ifndef __LCD_H__
#define __LCD_H__

//n: LCD 类型编号, w,h:LCD宽度,高度,b: b+1=LCD颜色位数,
//dw: LCD扫描总线宽度4/8/16/24...
//									2bit			10bit,		10bit,	5bit,		5bit
#define LCDINFO(n,w,h,b, dw)			(((dw)<<30)|((w)<<20)|((h)<<10)|((n)<<5)|((b)-1))

//LCD颜色位数
#define MONO					1
#define GRAY16					4
#define COLOR256				8
#define COLOR64K				16

//LCD扫描总线宽度
#define LCDDBW4					0
#define LCDDBW8					1
#define LCDDBW16				2
#define LCDDBW24				3

////////////////定义LCD的类型/////////////
#define LCDTYPE_320x240xMONO			LCDINFO(0, 320, 240, MONO, LCDDBW4)
#define LCDTYPE_320x240x16GRAY		LCDINFO(0, 320, 240, GRAY16, LCDDBW4)

#define LCDTYPE_320x240x256COLOR		LCDINFO(0, 320, 240, COLOR256,LCDDBW8)
	//新版的UP-NetARM3000平台,用GPB4控制LCD开启
#define LCDTYPE_320x240x256_3000		LCDINFO(1, 320, 240, COLOR256,LCDDBW8)

#define LCDTYPE_640x480x256COLOR		LCDINFO(0, 640, 480, COLOR256,LCDDBW8)

#define LCDDATA_SWAPNULL	0	//不交换---LCD点阵显示顺序4n+3,4n+2,4n+1,4n
#define LCDDATA_SWAPW		1	//高低字交换
#define LCDDATA_SWAPB		2	//高低字节交换
#define LCDDATA_SWAPA		3	//所有字节反序
#if (USE_MINIGUI==1)
#define LCDDATA_ORDER		LCDDATA_SWAPA
#else
#define LCDDATA_ORDER		LCDDATA_SWAPNULL
#endif

#define LCDTYPE		LCDTYPE_320x240x256_3000

#define LCDWIDTH		((LCDTYPE>>20)&0x3ff)
#define LCDHEIGHT		((LCDTYPE>>10)&0x3ff)
#define LCDBPP		((LCDTYPE&0x1f)+1)
#define LCDDBWIDTH		((LCDTYPE>>30)&0x3)	//LCD扫描总线宽度4/8/16/24...
#define LCDBOARDNUMBER	((LCDTYPE>>5)&0x1f)	//LCD板编号
#define LCDFBSIZE		(LCDWIDTH*LCDHEIGHT*LCDBPP/8)
#define LCDCOLOR		LCDBPP

#define DspTxtMode		0
#define DspGraMode		1

#if (LCDTYPE==LCDTYPE_320x240xMONO)
#define CLKVAL		(10)	// 60Mhz, fr=100Hz (CLKVAL=38.6)
#elif (LCDTYPE==LCDTYPE_320x240x16GRAY)
#define CLKVAL		(10)	// 60Mhz, fr=100Hz (CLKVAL=38.6)
#elif (LCDTYPE==LCDTYPE_320x240x256COLOR) || (LCDTYPE==LCDTYPE_320x240x256_3000)
#define CLKVAL			(5)	// 60Mhz
#else
#error	//must define LCDTYPE
#endif

#define LCD_RLEN		(LCDWIDTH*LCDBPP/8)	//每行像素所占的字节数

#define LCD_FBADDR		0xc000000

void LCD_Cls(void); //文本模式下清除屏幕
void LCD_printf(const char *format,...);
void LCD_ChangeMode(int mode);
void LCD_Refresh(void);
void LCD_TestShow(void);

void LCD_Init(void);

//各个LCD驱动中定义
void LCDBkLight(int isOpen);
void LCDDisplayOpen(int isOpen);

//LCD 库函数
void LCDLib_Init(unsigned int * pfb);

#endif

⌨️ 快捷键说明

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