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

📄 lcd_palette.h

📁 嵌入式系统
💻 H
字号:
/*-----------------------------------------------------------------------------
@@
@@ Copyright (c) 1999 Sharp Corporation All rights reserved.
@@
@@ (Summary)	: The file about color palette of LCD controller
@@
@@ (Comment)  	: 
@@
@@ (Author)   	: Tsuneo TOMITA
@@
@@ (History)	: Date		Modifier	Comment
@@				 2001/1/30  K.FUKUDA	added prefix
@@ (RCS ID)   	: 
@@
-----------------------------------------------------------------------------*/

#ifndef LCD_PALETTE
#define LCD_PALETTE

/******************************************************************************
@@
@@ [Name]		: LCDPackPalette
@@
@@ [Summary]	: Transform into palette data (APD_LCD_RGB_COLOR -> pixel data)
@@
@@ [Argument]	: palette_data : Pointer to buffer of RGB color model data
@@
@@ [Return]		: Transformed palette color data
@@
@@ [Desc]		: Transform RGB color model data into palette data
@@				  of LCD controller.
@@				  					
@@ [History]	: Date		Modifier	Comment
@@
@@ [END]
******************************************************************************/
APD_INLINE unsigned short LCDPackPalette(
APD_LCD_RGB_COLOR *palette_data
)
{
	unsigned short color;			/* palette data */

	color = palette_data->intensity & 0x01;
	color = (color<<5) | (palette_data->blue & 0x1F);
	color = (color<<5) | (palette_data->green & 0x1F);
	color = (color<<5) | (palette_data->red & 0x1F);

	return(color);
}

/******************************************************************************
@@
@@ [Name]		: LCDUnpackPalette
@@
@@ [Summary]	: Transform palette data into RGB color model data
@@				  (pixel -> APD_LCD_RGB_COLOR)
@@
@@ [Argument]	: palette_data : Pointer to buffer of RGB color model data
@@				  color		   : palette color data
@@
@@ [Return]		: None
@@
@@ [Desc]		: Transform palette data into color data.
@@				  					
@@ [History]	: Date		Modifier	Comment
@@
@@ [END]
******************************************************************************/
APD_INLINE void LCDUnpackPalette(
APD_LCD_RGB_COLOR *palette_data,
unsigned short color
)
{
	palette_data->red = color & 0x1F;
	palette_data->green = (color & 0x3E0)>>5;
	palette_data->blue = (color & 0x7C00)>>10;
	palette_data->intensity = color>>15;

	return;
}

/******************************************************************************
@@
@@ [Name]		: LCDSetPalette
@@
@@ [Summary]	: Set color palette of LCD controller
@@
@@ [Argument]	: palette_adrs : Address of color palette set palette data
@@				  color		   : Palette data
@@
@@ [Return]		: None
@@
@@ [Desc]		: Set the value to register of LCD controller color palette.
@@				  					
@@ [History]	: Date		Modifier	Comment
@@
@@ [END]
******************************************************************************/
APD_INLINE void LCDSetPalette(
volatile APD_REG *palette_adrs,
unsigned short *color
)
{
	APD_REG p;

#ifdef APD_LCD_BEBO
	p = color[0];
	p = (p<<16) | color[1];
#else  /* APD_LCD_LEBO */
	p = color[1];
	p = (p<<16) | color[0];
#endif /* APD_LCD_BEBO */
	apd_WriteReg(palette_adrs, p);
}

/******************************************************************************
@@
@@ [Name]		: LCDGetPalette
@@
@@ [Summary]	: Read color palette LCD controller
@@
@@ [Argument]	: palette_adrs : Address read palette data
@@				  color		   : Pointer to buffer of palette data
@@
@@ [Return]		: None
@@
@@ [Desc]		: Read the register of LCD controller color palette.
@@				  					
@@ [History]	: Date		Modifier	Comment
@@
@@ [END]
******************************************************************************/
APD_INLINE void LCDGetPalette(
volatile APD_REG *palette_adrs,
unsigned short *color
)
{
	APD_REG p;

	p = apd_ReadReg(palette_adrs);

#ifdef APD_LCD_BEBO
	color[1] = (unsigned short)(p & 0xFFFF);
	color[0] = (unsigned short)(p>>16);
#else  /* APD_LCD_LEBO */
	color[0] = (unsigned short)(p & 0xFFFF);
	color[1] = (unsigned short)(p>>16);
#endif /* APD_LCD_BEBO */
}

#endif /* APD_LCD_PALETTE */

⌨️ 快捷键说明

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