📄 sma_colors.c
字号:
/***********************************************************************
* $Workfile: SMA_colors.c $
* $Revision: 1.0 $
* $Author: WellsK $
* $Date: Aug 27 2002 08:37:44 $
*
* Project: Color definitions
*
* Description:
* See the SMA_colors.h header file for a description of this package.
*
* Revision History:
* $Log: //smaicnt2/pvcs/VM/CHIPS/archives/SOC/Source/Graphics/Utilities/Color conversion/SMA_colors.c-arc $
*
* Rev 1.0 Aug 27 2002 08:37:44 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) 2002 SHARP MICROELECTRONICS OF THE AMERICAS, INC.
* CAMAS, WA
**********************************************************************/
#include "SMA_colors.h"
//**********************************************************************
// Functions
//**********************************************************************
/***********************************************************************
*
* Function: 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:
* Places the palette table in memory indiced by palette_table.
*
* 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 colors_set_palette (UNS_16 *palette_table)
{
#ifdef COLORS_8
INT_32 i;
UNS_16 entry, r, g, b;
// 256 entries
for (i = 0; i < NUM_COLORS; i++)
{
r = ((UNS_16) i & REDMASK) >> REDSHIFT;
g = ((UNS_16) i & GREENMASK) >> GREENSHIFT;
b = ((UNS_16) i & BLUEMASK) >> BLUESHIFT;
#ifdef COLORS_8_565_MODE // Use this entry for 565 color mode
// 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);
#else // Use this entry for 565 color 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);
#endif
// Save palette entry
palette_table [i] = entry;
}
#else
// Do nothing in non-8-bit modes
;
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -