LCD TFT
Dependents: Example_Menu_LCD_TFT
Diff: LCDTFT.h
- Revision:
- 1:1085b6177f6e
- Parent:
- 0:359653f39307
diff -r 359653f39307 -r 1085b6177f6e LCDTFT.h --- a/LCDTFT.h Sun Jan 30 20:25:48 2011 +0000 +++ b/LCDTFT.h Tue Mar 15 01:47:35 2011 +0000 @@ -1,156 +1,157 @@ -/* - @file LCDTFT.h - @version: 1.0 - - @web www.micros-designs.com.ar - @date 30/01/11 - -*- Version Log --------------------------------------------------------------* -* Fecha Autor Comentarios * -*----------------------------------------------------------------------------* -* 30/01/11 Suky Original * -*----------------------------------------------------------------------------*/ -/////////////////////////////////////////////////////////////////////////// -//// //// -//// //// -//// (C) Copyright 2011 www.micros-designs.com.ar //// -//// Este código puede ser usado, modificado y distribuido libremente //// -//// sin eliminar esta cabecera y sin garantÃa de ningún tipo. //// -//// //// -//// //// -/////////////////////////////////////////////////////////////////////////// - -/** Libreria para LCD TFT chip Himax HX8347-A - * - * - * @code - * #include "mbed.h" - * #include "LCDTFT.h" - * - *BusOut MyBus(p13,p14,p15,p16,p17,p18,p19,p20,p30,p29,p28,p27,p26,p25,p24,p23); - *LCDTFT MyLCD(p5,p6,p7,p22,p21,&MyBus); - * - *int main(){ - * MyLCD.vLCDTFTInit(); - * MyLCD.vLCDTFTFillScreen(ColorWhite); - * MyLCD.printf("Hola mbed!!!"); - * - * MyLCD.vDrawImageBMP24Bits("IMG0.BMP"); - * - * while(1){ - * } - *} - * @endcode - */ - -#include "mbed.h" -#include "Fuentes.h" - -#define ColorRed 0xf800 -#define ColorGreen 0x400 -#define ColorBlue 0x001f -#define ColorMarron 0x8208 -#define ColorBlack 0x0 -#define ColorWhite 0xffff -#define ColorMaroon 0x8000 -#define ColorFuchsia 0xf81f -#define ColorVioleta 0x801f -#define ColorAzulMarino 0x14 -#define ColorGray 0x8410 -#define ColorOlive 0x8400 -#define ColorNaranja 0xfc08 -#define ColorYellow 0xffe0 -#define ColorCian 0x87ff -#define ColorRosado 0xf810 -#define ColorNavy 0x10 -#define ColorPurple 0x8010 -#define ColorTeal 0x410 -#define ColorLime 0x7e0 -#define ColorAqua 0x7ff - -#define LCD_X_MAX 240 -#define LCD_Y_MAX 320 - -class LCDTFT: public Stream { - public: - /** Crea LCDTFT interface - * - * @param RD - * @param WR - * @param RS - * @param CS - * @param RESET - * @param BusLCD (16-bits) - */ - LCDTFT(PinName PIN_RD,PinName PIN_WR,PinName PIN_RS,PinName PIN_CS,PinName PIN_RESET, BusOut *BUSLCD); - /** Inicializa LCD - * - */ - void vLCDTFTInit(void); - /** Fija parametros para escritura mediante printf - * - * @param Xo X inicial - * @param Yo Y inicial - * @param Xmin X minimo - * @param Xmax X maximo - * @param Alto Alto de letra (1,2,3..) - * @param Color Color de letra 16-bits - */ - void vLCDTFTSetParametersPrintf(unsigned short Xo,unsigned short Yo,unsigned short Xmin,unsigned short Xmax,unsigned char Alto, unsigned short Color); - /** Pinta pantalla completa de color - * @param Color Color de 16-bits - */ - void vLCDTFTFillScreen(unsigned short Color); - /** Dibuja punto en pantalla - * @param x Posicion x - * @param y Posicion y - * @param Color Color 16-bits - */ - void vLCDTFTPoint(unsigned short x,unsigned short y,unsigned short Color); - /** Escribe string en LCD - * @param x X inicial - * @param y Y inicial - * @param *PtrText Texto a escribir - * @param *Fuente Fuente de letra a escribir (ARIAL) - * @param Alto Alto de letra (1,2,3) - * @param Color Color de 16-bits - */ - void vLCDTFTText(unsigned short x,unsigned short y,const char *PtrText,const char (*Fuente)[5],unsigned char Alto,unsigned short Color); - - void vLCDTFTLine(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2,unsigned short Color); - void vLCDTFTRectangle(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2,bool Filled,unsigned short Color); - void vLCDTFTCircle(unsigned short x,unsigned short y,unsigned short Radius,bool Filled,unsigned short Color); - /** Dibuja imagen ubicada en memoria de mbed (2Mbytes) centrada en patalla - * @param NameImagen nombre de imagen (ejm: IMAGEN.BMP) - */ - void vDrawImageBMP24Bits(const char *NameImagen); - #if DOXYGEN_ONLY - /** Escribe un caracter en LCD - * - * @param c El caracter a escribir en LCD - */ - int putc(int c); - - /** Escribe un string formateado en LCD - * - * @param format A printf-style format string, followed by the - * variables to use in formating the string. - */ - int printf(const char* format, ...); - #endif - - private: - DigitalOut LCD_PIN_RD,LCD_PIN_WR,LCD_PIN_RS,LCD_PIN_CS,LCD_PIN_RESET; - BusOut *LCD_PORT; - unsigned short X,Y,X_min,X_max,_Alto,_Color; - // Stream implementation functions - virtual int _putc(int value); - virtual int _getc(); - - virtual void vLCDTFTWriteCommand(unsigned short Data); - virtual void vLCDTFTWriteData(unsigned short Data); - virtual void vLCDTFTWriteCommandData(unsigned short CMD,unsigned short Data); - virtual void vLCDTFTAddressSet(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2); - virtual void vLCDTFTAddressSetPoint(unsigned short x,unsigned short y); -}; -// ************************************************************************************************************************************** +/* + @file LCDTFT.h + @version: 1.0 + + @web www.micros-designs.com.ar + @date 30/01/11 + +*- Version Log --------------------------------------------------------------* +* Fecha Autor Comentarios * +*----------------------------------------------------------------------------* +* 30/01/11 Suky Original * +*----------------------------------------------------------------------------*/ +/////////////////////////////////////////////////////////////////////////// +//// //// +//// //// +//// (C) Copyright 2011 www.micros-designs.com.ar //// +//// Este código puede ser usado, modificado y distribuido libremente //// +//// sin eliminar esta cabecera y sin garantía de ningún tipo. //// +//// //// +//// //// +/////////////////////////////////////////////////////////////////////////// + +/** Libreria para LCD TFT chip Himax HX8347-A + * + * + * @code + * #include "mbed.h" + * #include "LCDTFT.h" + * + *BusOut MyBus(p13,p14,p15,p16,p17,p18,p19,p20,p30,p29,p28,p27,p26,p25,p24,p23); + *LCDTFT MyLCD(p5,p6,p7,p22,p21,&MyBus); + * + *int main(){ + * MyLCD.vLCDTFTInit(); + * MyLCD.vLCDTFTFillScreen(ColorWhite); + * MyLCD.printf("Hola mbed!!!"); + * + * MyLCD.vDrawImageBMP24Bits("IMG0.BMP"); + * + * while(1){ + * } + *} + * @endcode + */ + +#include "mbed.h" +#include "Fuentes.h" + +#define ColorRed 0xf800 +#define ColorGreen 0x400 +#define ColorBlue 0x001f +#define ColorMarron 0x8208 +#define ColorBlack 0x0 +#define ColorWhite 0xffff +#define ColorMaroon 0x8000 +#define ColorFuchsia 0xf81f +#define ColorVioleta 0x801f +#define ColorAzulMarino 0x14 +#define ColorGray 0x8410 +#define ColorOlive 0x8400 +#define ColorNaranja 0xfc08 +#define ColorYellow 0xffe0 +#define ColorCian 0x87ff +#define ColorRosado 0xf810 +#define ColorNavy 0x10 +#define ColorPurple 0x8010 +#define ColorTeal 0x410 +#define ColorLime 0x7e0 +#define ColorAqua 0x7ff + +#define LCD_X_MAX 240 +#define LCD_Y_MAX 320 + +class LCDTFT: public Stream { + public: + /** Crea LCDTFT interface + * + * @param RD + * @param WR + * @param RS + * @param CS + * @param RESET + * @param BusLCD (16-bits) + */ + LCDTFT(PinName PIN_RD,PinName PIN_WR,PinName PIN_RS,PinName PIN_CS,PinName PIN_RESET, BusOut *BUSLCD); + /** Inicializa LCD + * + */ + void vLCDTFTInit(void); + /** Fija parametros para escritura mediante printf + * + * @param Xo X inicial + * @param Yo Y inicial + * @param Xmin X minimo + * @param Xmax X maximo + * @param Alto Alto de letra (1,2,3..) + * @param Color Color de letra 16-bits + */ + void vLCDTFTSetParametersPrintf(unsigned short Xo,unsigned short Yo,unsigned short Xmin,unsigned short Xmax,unsigned char Alto, unsigned short Color); + /** Pinta pantalla completa de color + * @param Color Color de 16-bits + */ + void vLCDTFTFillScreen(unsigned short Color); + /** Dibuja punto en pantalla + * @param x Posicion x + * @param y Posicion y + * @param Color Color 16-bits + */ + void vLCDTFTPoint(unsigned short x,unsigned short y,unsigned short Color); + /** Escribe string en LCD + * @param x X inicial + * @param y Y inicial + * @param *PtrText Texto a escribir + * @param *Fuente Fuente de letra a escribir (ARIAL) + * @param Alto Alto de letra (1,2,3) + * @param Color Color de 16-bits + */ + void vLCDTFTText(unsigned short x,unsigned short y,const char *PtrText,const char (*Fuente)[5],unsigned char Alto,unsigned short Color); + + void vLCDTFTLine(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2,unsigned short Color); + void vLCDTFTRectangle(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2,bool Filled,unsigned short Color); + void vLCDTFTCircle(unsigned short x,unsigned short y,unsigned short Radius,bool Filled,unsigned short Color); + /** Dibuja imagen ubicada en memoria de mbed (2Mbytes) centrada en patalla + * @param NameImagen nombre de imagen (ejm: IMAGEN.BMP) + */ + void vDrawImageBMP24Bits(const char *NameImagen); + void vLCDTFTDrawImage(unsigned short x,unsigned short y, unsigned short Width, unsigned short Heigh, unsigned int Lenght, const unsigned short *Imagen); + #if DOXYGEN_ONLY + /** Escribe un caracter en LCD + * + * @param c El caracter a escribir en LCD + */ + int putc(int c); + + /** Escribe un string formateado en LCD + * + * @param format A printf-style format string, followed by the + * variables to use in formating the string. + */ + int printf(const char* format, ...); + #endif + + private: + DigitalOut LCD_PIN_RD,LCD_PIN_WR,LCD_PIN_RS,LCD_PIN_CS,LCD_PIN_RESET; + BusOut *LCD_PORT; + unsigned short X,Y,X_min,X_max,_Alto,_Color; + // Stream implementation functions + virtual int _putc(int value); + virtual int _getc(); + + virtual void vLCDTFTWriteCommand(unsigned short Data); + virtual void vLCDTFTWriteData(unsigned short Data); + virtual void vLCDTFTWriteCommandData(unsigned short CMD,unsigned short Data); + virtual void vLCDTFTAddressSet(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2); + virtual void vLCDTFTAddressSetPoint(unsigned short x,unsigned short y); +}; +// **************************************************************************************************************************************