A basic graphics package for the LPC4088 Display Module.

Dependents:   lpc4088_displaymodule_demo_sphere sampleGUI sampleEmptyGUI lpc4088_displaymodule_fs_aid ... more

Fork of DMBasicGUI by EmbeddedArtists AB

Revision:
0:4977187e90c7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lpc_swim/lpc_colors.c	Thu Dec 11 11:03:57 2014 +0000
@@ -0,0 +1,83 @@
+/*
+ * @brief SWIM color definitions and palette table setup
+ *
+ * @note
+ * Copyright(C) NXP Semiconductors, 2012
+ * All rights reserved.
+ *
+ * @par
+ * Software that is described herein is for illustrative purposes only
+ * which provides customers with programming information regarding the
+ * LPC products.  This software is supplied "AS IS" without any warranties of
+ * any kind, and NXP Semiconductors and its licensor disclaim any and
+ * all warranties, express or implied, including all implied warranties of
+ * merchantability, fitness for a particular purpose and non-infringement of
+ * intellectual property rights.  NXP Semiconductors assumes no responsibility
+ * or liability for the use of the software, conveys no license or rights under any
+ * patent, copyright, mask work right, or any other intellectual property rights in
+ * or to any products. NXP Semiconductors reserves the right to make changes
+ * in the software without notification. NXP Semiconductors also makes no
+ * representation or warranty that such application will be suitable for the
+ * specified use without further testing or modification.
+ *
+ * @par
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation is hereby granted, under NXP Semiconductors' and its
+ * licensor's relevant copyrights in the software, without fee, provided that it
+ * is used in conjunction with NXP Semiconductors microcontrollers.  This
+ * copyright, permission, and disclaimer notice must appear in all copies of
+ * this code.
+ */
+
+#include "lpc_colors.h"
+
+/*****************************************************************************
+ * Private types/enumerations/variables
+ ****************************************************************************/
+
+/*****************************************************************************
+ * Public types/enumerations/variables
+ ****************************************************************************/
+
+/*****************************************************************************
+ * Private functions
+ ****************************************************************************/
+
+/*****************************************************************************
+ * Public functions
+ ****************************************************************************/
+
+/* Generate a palette table (only in 8-bit mode) */
+void lpc_colors_set_palette(uint16_t *palette_table)
+{
+#if COLORS_DEF == 8
+	int32_t idx;
+	uint16_t entry, r, g, b;
+
+	/* 256 entries */
+	for (idx = 0; idx < NUM_COLORS; idx++) {
+		r = ((uint16_t) idx & REDMASK) >> REDSHIFT;
+		g = ((uint16_t) idx & GREENMASK) >> GREENSHIFT;
+		b = ((uint16_t) 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 */
+}
+