blob: 51d52d54e135101b51d7d4f1136c2e500b0492d0 [file] [log] [blame]
//*****************************************************************************
// +--+
// | ++----+
// +-++ |
// | |
// +-+--+ |
// | +--+--+
// +----+ Copyright (c) 2009 Code Red Technologies Ltd.
//
// lcd.h - Routines containing primitives for writing to the LCD
//
//
// Software License Agreement
//
// The software is owned by Code Red Technologies and/or its suppliers, and is
// protected under applicable copyright laws. All rights are reserved. Any
// use in violation of the foregoing restrictions may subject the user to criminal
// sanctions under applicable laws, as well as to civil liability for the breach
// of the terms and conditions of this license.
//
// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
// USE OF THIS SOFTWARE FOR COMMERCIAL DEVELOPMENT AND/OR EDUCATION IS SUBJECT
// TO A CURRENT END USER LICENSE AGREEMENT (COMMERCIAL OR EDUCATIONAL) WITH
// CODE RED TECHNOLOGIES LTD.
#ifndef LCD_H_
#define LCD_H_
// Define size of LCD screen.
#define LCD_MAX_X 128
#define LCD_MAX_Y 128
// Translates a 24-bit RGB color to RGB565
#define TRANSLATE24BIT_TO_RGB565(c) ((((c) & 0x00ff0000) >> 19) | \
((((c) & 0x0000ff00) >> 5) & 0x000007e0) | \
((((c) & 0x000000ff) << 8) & 0x0000f800))
// Define a basic set of 24bit colors, based on the standard "websafe" set
#define COLOR24_AQUA 0x00FFFF
#define COLOR24_GREY 0x808080
#define COLOR24_NAVY 0x000080
#define COLOR24_SILVER 0xC0C0C0
#define COLOR24_BLACK 0x000000
#define COLOR24_GREEN 0x008000
#define COLOR24_OLIVE 0x808000
#define COLOR24_TEAL 0x008080
#define COLOR24_BLUE 0x0000FF
#define COLOR24_LIME 0x00FF00
#define COLOR24_PURPLE 0x800080
#define COLOR24_WHITE 0xFFFFFF
#define COLOR24_FUCHSIA 0xFF00FF
#define COLOR24_MAROON 0x800000
#define COLOR24_RED 0xFF0000
#define COLOR24_YELLOW 0xFFFF00
// Create a set of RGB565 colors that can be used directly within code
#define COLOR_AQUA TRANSLATE24BIT_TO_RGB565(COLOR24_AQUA)
#define COLOR_GREY TRANSLATE24BIT_TO_RGB565(COLOR24_GREY)
#define COLOR_NAVY TRANSLATE24BIT_TO_RGB565(COLOR24_NAVY)
#define COLOR_SILVER TRANSLATE24BIT_TO_RGB565(COLOR24_SILVER)
#define COLOR_BLACK TRANSLATE24BIT_TO_RGB565(COLOR24_BLACK)
#define COLOR_GREEN TRANSLATE24BIT_TO_RGB565(COLOR24_GREEN)
#define COLOR_OLIVE TRANSLATE24BIT_TO_RGB565(COLOR24_OLIVE)
#define COLOR_TEAL TRANSLATE24BIT_TO_RGB565(COLOR24_TEAL)
#define COLOR_BLUE TRANSLATE24BIT_TO_RGB565(COLOR24_BLUE)
#define COLOR_LIME TRANSLATE24BIT_TO_RGB565(COLOR24_LIME)
#define COLOR_PURPLE TRANSLATE24BIT_TO_RGB565(COLOR24_PURPLE)
#define COLOR_WHITE TRANSLATE24BIT_TO_RGB565(COLOR24_WHITE)
#define COLOR_FUCHSIA TRANSLATE24BIT_TO_RGB565(COLOR24_FUCHSIA)
#define COLOR_MAROON TRANSLATE24BIT_TO_RGB565(COLOR24_MAROON)
#define COLOR_RED TRANSLATE24BIT_TO_RGB565(COLOR24_RED)
#define COLOR_YELLOW TRANSLATE24BIT_TO_RGB565(COLOR24_YELLOW)
void LCD_Line (int xmin,int xmax,int ymin,int ymax,int color);
void LCD_FilledRect(int xmin,int xmax,int ymin,int ymax,int color);
void LCD_Rect(int xmin,int xmax,int ymin,int ymax,int color);
void LCD_WriteBitMap8x15(int x, int y, int height, int width, unsigned char *pBitMap, int color);
void LCD_PlotPoint(int x,int y,int color);
void LCD_Circle (int x0, int y0, int radius, int color);
void LCD_FilledCircle (int x0, int y0, int radius, int color);
void LCD_ClearScreen(void);
void LCD_WriteBitMap8x15(int x, int y, int height, int width, unsigned char *pBitMap, int color);
void LCD_PrintChar(int x, int y, unsigned char c, int color );
void LCD_PrintString(int x, int y, char *pcString, int iStrLen, int color);
#endif /*LCD_H_*/