📄 abl_colors.c
字号:
/***********************************************************************
* $Workfile: abl_colors.c $
* $Revision: 1.1 $
* $Author: WellsK $
* $Date: Aug 04 2003 09:34:08 $
*
* Project: Color definitions
*
* Description:
* See the SMA_colors.h header file for a description of this
* package.
*
* Revision History:
* $Log: //smaicnt2/pvcs/VM/sharpmcu/archives/sharpmcu/software/abl/source/abl_colors.c-arc $
*
* Rev 1.1 Aug 04 2003 09:34:08 WellsK
* Corrected index name (syntax error) when using defines that
* generate palette table in 8-bit mode.
*
* Rev 1.0 Jun 09 2003 12:06:26 WellsK
* Initial revision.
*
*
***********************************************************************
* SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION
* OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE,
* AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES,
* SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE.
*
* SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE SOLELY
* FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE USE OF A
* SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT. USE OF THIS SOURCE
* FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS.
*
* COPYRIGHT (C) 2001 SHARP MICROELECTRONICS OF THE AMERICAS, INC.
* CAMAS, WA
**********************************************************************/
#include "abl_colors.h"
/***********************************************************************
* Functions
**********************************************************************/
/***********************************************************************
*
* Function: abl_colors_set_palette
*
* Purpose: Generate a palette table (only in 8-bit mode).
*
* Processing:
* Depending on the target LCD color mapping (either 555 or 565), a
* palette table will be generated to convert colors stored in 233
* format to either 555 or 565 format through a lookup table.
*
* Parameters:
* palette_table : Pointer of where to put the 256 8-bit to 16-bit
* palette conversion entries.
*
* Outputs: None
*
* Returns: Nothing
*
* Notes:
* If compiled in 16-bit color mode, this will be a NULL function.
* Select the appropriate define in this function for 555 or 565
* color mode displays when using an 256 color frame buffer.
*
**********************************************************************/
void abl_colors_set_palette(UNS_16 *palette_table)
{
#if COLORS_DEF == 8
INT_32 idx;
UNS_16 entry, r, g, b;
/* 256 entries */
for (idx = 0; idx < NUM_COLORS; idx++)
{
r = ((UNS_16) idx & REDMASK) >> REDSHIFT;
g = ((UNS_16) idx & GREENMASK) >> GREENSHIFT;
b = ((UNS_16) idx & BLUEMASK) >> BLUESHIFT;
#ifdef COLORS_8_565_MODE
/* Strip out and scale colors */
r = r * 0x1F / ((REDMASK >> REDSHIFT) + 1);
g = g * 0x3F / ((GREENMASK >> GREENSHIFT) + 1);
b = b * 0x1F / ((BLUEMASK >> BLUESHIFT) + 1);
entry = b + (g << 5) + (r << 11);
#else
/* Strip out and scale colors */
r = r * 0x1F / ((REDMASK >> REDSHIFT) + 1);
g = g * 0x1F / ((GREENMASK >> GREENSHIFT) + 1);
b = b * 0x1F / ((BLUEMASK >> BLUESHIFT) + 1);
entry = b + (g << 5) + (r << 10);
#endif
/* Save palette entry */
palette_table [idx] = entry;
}
#endif /* COLORS_DEF == 8 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -