📄 lcd.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 + -