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

📄 lcd_pattern.h

📁 嵌入式系统
💻 H
字号:
/*-----------------------------------------------------------------------------
@@
@@ Copyright (c) 1998 Sharp Corporation All rights reserved.
@@
@@ (Summary)	: The file of definition of line type and fill pattern for LCD
@@				  Controller
@@
@@ (Comment)	: 
@@
@@ (Author)		: Tsuneo TOMITA
@@
@@ (History)	: Date		Modifier	Comment
@@
@@ (RCS ID)		: 
@@
-----------------------------------------------------------------------------*/
#ifndef LCD_PATTERN
#define LCD_PATTERN

/* Initial pattern mask */
#define LCD_PAT_MASK	0x80

/* The number of line type */
#define LCD_MAX_LINETYPE	3

static const unsigned char LCD_LINE_PAT[] =	/* Bit pattern of line type */
{
0xFF,		/* solid */
0xAA,		/* dot */
0xF0,		/* dash */
0xE4		/* dash-dot */
};

/* The number of fill pattern */
#define LCD_MAX_FILLTYPE	2

/* The size of byte of bit pattern to fill */
#define LCD_SIZE_FILLPAT	8
#define LCD_SIZE_FILLPAT_H	4

#define	LCD_FILL_NONE	-1

#if (APD_LCD_BPP == 16)
static const unsigned char LCD_FILL_PAT[] =	/* Bit pattern to fill */
{
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,		/* solid */
0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55,		/* half-tone */
0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88,		/* upward to the right */
0x88, 0x44, 0x22, 0x11, 0x88, 0x44, 0x22, 0x11,		/* upward to the left */
0x99, 0x66, 0x66, 0x99, 0x99, 0x66, 0x66, 0x99,		/* diagonal cross */
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,		/* vertical */
};

/* Horaizontal fill pattern */
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =	/* Specify index of above LCD_FILL_PAT */
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{1, 1, 1, 1},	/* APD_LCD_FILL_DOT */
	{2, 2, 2, 2},	/* APD_LCD_FILL_DIAGONAL */
	{3, 3, 3, 3},	/* APD_LCD_FILL_BDIAGONAL */
	{4, 4, 4, 4},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{5, 5, 5, 5},	/* APD_LCD_FILL_VERTICAL */
	{0, 5, 5, 5}	/* APD_LCD_FILL_CROSS */
};

#endif	/* APD_LCD_BPP == 16 */

#if (APD_LCD_BPP == 8)
/* 32bits mask pattern to fill */
static const unsigned long LCD_FILL_PAT[] =
{
0xFFFFFFFF,		/* solid */
0xFF00FF00,		/* half-tone */
0x00FF00FF,
0x000000FF,
0x0000FF00,
0x00FF0000,
0xFF000000,
0xFF0000FF,
0x00FFFF00,
};

/* Specify index of above LCD_FILL_PAT */
#ifdef	APD_LCD_LEBO
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{1, 2, 1, 2},	/* APD_LCD_FILL_DOT */
	{3, 4, 5, 6},	/* APD_LCD_FILL_DIAGONAL */
	{6, 5, 4, 3},	/* APD_LCD_FILL_BDIAGONAL */
	{7, 8, 8, 7},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{6, 6, 6, 6},	/* APD_LCD_FILL_VERTICAL */
	{0, 6, 6, 6}	/* APD_LCD_FILL_CROSS */
};
#else
#ifdef 	APD_LCD_BEBO
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{2, 1, 2, 1},	/* APD_LCD_FILL_DOT */
	{6, 5, 4, 3},	/* APD_LCD_FILL_DIAGONAL */
	{3, 4, 5, 6},	/* APD_LCD_FILL_BDIAGONAL */
	{7, 8, 8, 7},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{3, 3, 3, 3},	/* APD_LCD_FILL_VERTICAL */
	{0, 3, 3, 3}	/* APD_LCD_FILL_CROSS */
};
#endif	/* APD_LCD_BEBO */
#endif	/* APD_LCD_LEBO */
/* static Hline pattern */
#ifdef APD_LCD_LEBO
static const unsigned long LCD_HLINE_PAT[][LCD_MAX_FILLTYPE] =
{
{0xFFFFFFFF, 0xFFFFFFFF},	/* SOLID */
{0xFF00FF00, 0xFF00FF00},	/* DOT */
{0xFFFFFFFF, 0x00000000},	/* DASH */
{0xFFFFFF00, 0x00FF0000}	/* DASH-DOT */
};
#else
#ifdef APD_LCD_BEBO
static const unsigned long LCD_HLINE_PAT[][LCD_MAX_FILLTYPE] =
{
{0xFFFFFFFF, 0xFFFFFFFF},	/* SOLID */
{0x00FF00FF, 0x00FF00FF},	/* DOT */
{0x00000000, 0xFFFFFFFF},	/* DASH */
{0x0000FF00, 0x00FFFFFF}	/* DASH-DOT */
};
#endif	/* APD_LCD_BEBO */
#endif	/* APD_LCD_LEBO */
#endif	/* APD_LCD_BPP == 8 */

#if (APD_LCD_BPP == 4)
static const unsigned long LCD_FILL_PAT[] =	/* 32bits mask pattern to fill */
{
0xFFFFFFFF,		/* solid */
0xF0F0F0F0,		/* half-tone */
0x0F0F0F0F,
0x000F000F,
0x00F000F0,
0x0F000F00,
0xF000F000,
0xF00FF00F,
0x0FF00FF0,
};

#ifdef	APD_LCD_LEBO
#ifdef	APD_LCD_LEPO
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =	/* Specify index of above LCD_FILL_PAT */
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{1, 2, 1, 2},	/* APD_LCD_FILL_DOT */
	{3, 4, 5, 6},	/* APD_LCD_FILL_DIAGONAL */
	{6, 5, 4, 3},	/* APD_LCD_FILL_BDIAGONAL */
	{7, 8, 8, 7},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{6, 6, 6, 6},	/* APD_LCD_FILL_VERTICAL */
	{0, 6, 6, 6}	/* APD_LCD_FILL_CROSS */
};
#else
#ifdef	APD_LCD_BEPO
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =	/* Specify index of above LCD_FILL_PAT */
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{2, 1, 2, 1},	/* APD_LCD_FILL_DOT */
	{4, 3, 6, 5},	/* APD_LCD_FILL_DIAGONAL */
	{5, 6, 3, 4},	/* APD_LCD_FILL_BDIAGONAL */
	{8, 7, 7, 8},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{5, 5, 5, 5},	/* APD_LCD_FILL_VERTICAL */
	{0, 5, 5, 5}	/* APD_LCD_FILL_CROSS */
};
#endif	/* APD_LCD_BEPO */
#endif	/* APD_LCD_LEPO */
#else
#ifdef	APD_LCD_BEBO
#ifdef 	APD_LCD_BEPO
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =	/* Specify index of above LCD_FILL_PAT */
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{2, 1, 2, 1},	/* APD_LCD_FILL_DOT */
	{6, 5, 4, 3},	/* APD_LCD_FILL_DIAGONAL */
	{3, 4, 5, 6},	/* APD_LCD_FILL_BDIAGONAL */
	{7, 8, 8, 7},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{3, 3, 3, 3},	/* APD_LCD_FILL_VERTICAL */
	{0, 3, 3, 3}	/* APD_LCD_FILL_CROSS */
};
#endif	/* APD_LCD_BEPO */
#endif	/* APD_LCD_BEBO */
#endif	/* APD_LCD_LEBO */
/* static Hline pattern */
#ifdef APD_LCD_LEBO
#ifdef APD_LCD_LEPO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0xF0F0F0F0,	/* DOT */
	0xFFFF0000,	/* DASH */
	0xFFF00F00	/* DASH-DOT */
};
#else
#ifdef APD_LCD_BEPO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0x0F0F0F0F,	/* DOT */
	0xFFFF0000,	/* DASH */
	0xFF0FF000	/* DASH-DOT */
};
#endif	/* APD_LCD_BEPO */
#endif	/* APD_LCD_LEPO */
#else
#ifdef APD_LCD_BEBO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0x0F0F0F0F,	/* DOT */
	0x0000FFFF,	/* DASH */
	0x00F00FFF	/* DASH-DOT */
};
#endif	/* APD_LCD_BEBO */
#endif	/* APD_LCD_LEBO */
#endif	/* APD_LCD_BPP == 4 */

#if (APD_LCD_BPP == 2)
/* 32bits mask pattern to fill */
static const unsigned long LCD_FILL_PAT[] =
{
0xFFFFFFFF,		/* solid */
0xCCCCCCCC,
0x33333333,
0x03030303,
0x0C0C0C0C,
0x30303030,
0xC0C0C0C0,
0xC3C3C3C3,
0x3C3C3C3C,
};

#ifdef APD_LCD_LEPO
/* Specify index of above LCD_FILL_PAT */
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{1, 2, 1, 2},	/* APD_LCD_FILL_DOT */
	{3, 4, 5, 6},	/* APD_LCD_FILL_DIAGONAL */
	{6, 5, 4, 3},	/* APD_LCD_FILL_BDIAGONAL */
	{7, 8, 8, 7},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{6, 6, 6, 6},	/* APD_LCD_FILL_VERTICAL */
	{0, 6, 6, 6}	/* APD_LCD_FILL_CROSS */
};
#else
#ifdef	APD_LCD_BEPO
/* Specify index of above LCD_FILL_PAT */
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{2, 1, 2, 1},	/* APD_LCD_FILL_DOT */
	{6, 5, 4, 3},	/* APD_LCD_FILL_DIAGONAL */
	{3, 4, 5, 6},	/* APD_LCD_FILL_BDIAGONAL */
	{7, 8, 8, 7},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{3, 3, 3, 3},	/* APD_LCD_FILL_VERTICAL */
	{0, 3, 3, 3}	/* APD_LCD_FILL_CROSS */
};
#endif	/* APD_LCD_BEPO */
#endif	/* APD_LCD_LEPO */
/* static Hline pattern */
#ifdef APD_LCD_LEBO
#ifdef APD_LCD_LEPO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0xCCCCCCCC,	/* DOT */
	0xFF00FF00,	/* DASH */
	0xFC30FC30	/* DASH-DOT */
};
#else
#ifdef APD_LCD_BEPO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0x33333333,	/* DOT */
	0xFF00FF00,	/* DASH */
	0x3F0C3F0C	/* DASH-DOT */
};
#endif	/* APD_LCD_BEPO */
#endif	/* APD_LCD_LEPO */
#else
#ifdef APD_LCD_BEBO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0x33333333,	/* DOT */
	0x00FF00FF,	/* DASH */
	0x0C3F0C3F	/* DASH-DOT */
};
#endif	/* APD_LCD_BEBO */
#endif	/* APD_LCD_LEBO */
#endif	/* APD_LCD_BPP == 2 */

#if (APD_LCD_BPP == 1)
/* 32bits mask pattern to fill */
static const unsigned long LCD_FILL_PAT[] =
{
0xFFFFFFFF,		/* solid */
0xAAAAAAAA,
0x55555555,
0x11111111,
0x22222222,
0x44444444,
0x88888888,
0x99999999,
0x66666666,
};

#ifdef	APD_LCD_LEPO
/* Specify index of above LCD_FILL_PAT */
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{1, 2, 1, 2},	/* APD_LCD_FILL_DOT */
	{3, 4, 5, 6},	/* APD_LCD_FILL_DIAGONAL */
	{6, 5, 4, 3},	/* APD_LCD_FILL_BDIAGONAL */
	{7, 8, 8, 7},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{6, 6, 6, 6},	/* APD_LCD_FILL_VERTICAL */
	{0, 6, 6, 6}	/* APD_LCD_FILL_CROSS */
};
#else
#ifdef	APD_LCD_BEPO
/* Specify index of above LCD_FILL_PAT */
static const char LCD_FILL_PAT_H[][LCD_SIZE_FILLPAT_H] =
{
	{0, 0, 0, 0},	/* APD_LCD_FILL_SOLID */
	{2, 1, 2, 1},	/* APD_LCD_FILL_DOT */
	{6, 5, 4, 3},	/* APD_LCD_FILL_DIAGONAL */
	{3, 4, 5, 6},	/* APD_LCD_FILL_BDIAGONAL */
	{7, 8, 8, 7},	/* APD_LCD_FILL_DCROSS */
	{0, (char)LCD_FILL_NONE, (char)LCD_FILL_NONE,
		 (char)LCD_FILL_NONE},	/* APD_LCD_FILL_HORIZONTAL */
	{3, 3, 3, 3},	/* APD_LCD_FILL_VERTICAL */
	{0, 3, 3, 3}	/* APD_LCD_FILL_CROSS */
};
#endif	/* APD_LCD_BEPO */
#endif	/* APD_LCD_LEPO */
/* static Hline pattern */
#ifdef APD_LCD_LEBO
#ifdef APD_LCD_LEPO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0xAAAAAAAA,	/* DOT */
	0xF0F0F0F0,	/* DASH */
	0xE4E4E4E4	/* DASH-DOT */
};
#else
#ifdef APD_LCD_BEPO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0x55555555,	/* DOT */
	0x0F0F0F0F,	/* DASH */
	0x27272727	/* DASH-DOT */
};
#endif	/* APD_LCD_BEPO */
#endif	/* APD_LCD_LEPO */
#else
#ifdef APD_LCD_BEBO
static const unsigned long LCD_HLINE_PAT[] =
{
	0xFFFFFFFF,	/* SOLID */
	0x55555555,	/* DOT */
	0x0F0F0F0F,	/* DASH */
	0x27272727	/* DASH-DOT */
};
#endif	/* APD_LCD_BEBO */
#endif	/* APD_LCD_LEBO */
#endif	/* APD_LCD_BPP == 1 */

#endif /* APD_LCD_PATTERN */

⌨️ 快捷键说明

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