LCD TFT

Dependents:   Example_Menu_LCD_TFT

Committer:
Suky
Date:
Sun Jan 30 20:25:48 2011 +0000
Revision:
0:359653f39307
Child:
1:1085b6177f6e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Suky 0:359653f39307 1 /*
Suky 0:359653f39307 2 @file LCDTFT.h
Suky 0:359653f39307 3 @version: 1.0
Suky 0:359653f39307 4
Suky 0:359653f39307 5 @web www.micros-designs.com.ar
Suky 0:359653f39307 6 @date 30/01/11
Suky 0:359653f39307 7
Suky 0:359653f39307 8 *- Version Log --------------------------------------------------------------*
Suky 0:359653f39307 9 * Fecha Autor Comentarios *
Suky 0:359653f39307 10 *----------------------------------------------------------------------------*
Suky 0:359653f39307 11 * 30/01/11 Suky Original *
Suky 0:359653f39307 12 *----------------------------------------------------------------------------*/
Suky 0:359653f39307 13 ///////////////////////////////////////////////////////////////////////////
Suky 0:359653f39307 14 //// ////
Suky 0:359653f39307 15 //// ////
Suky 0:359653f39307 16 //// (C) Copyright 2011 www.micros-designs.com.ar ////
Suky 0:359653f39307 17 //// Este código puede ser usado, modificado y distribuido libremente ////
Suky 0:359653f39307 18 //// sin eliminar esta cabecera y sin garantía de ningún tipo. ////
Suky 0:359653f39307 19 //// ////
Suky 0:359653f39307 20 //// ////
Suky 0:359653f39307 21 ///////////////////////////////////////////////////////////////////////////
Suky 0:359653f39307 22
Suky 0:359653f39307 23 /** Libreria para LCD TFT chip Himax HX8347-A
Suky 0:359653f39307 24 *
Suky 0:359653f39307 25 *
Suky 0:359653f39307 26 * @code
Suky 0:359653f39307 27 * #include "mbed.h"
Suky 0:359653f39307 28 * #include "LCDTFT.h"
Suky 0:359653f39307 29 *
Suky 0:359653f39307 30 *BusOut MyBus(p13,p14,p15,p16,p17,p18,p19,p20,p30,p29,p28,p27,p26,p25,p24,p23);
Suky 0:359653f39307 31 *LCDTFT MyLCD(p5,p6,p7,p22,p21,&MyBus);
Suky 0:359653f39307 32 *
Suky 0:359653f39307 33 *int main(){
Suky 0:359653f39307 34 * MyLCD.vLCDTFTInit();
Suky 0:359653f39307 35 * MyLCD.vLCDTFTFillScreen(ColorWhite);
Suky 0:359653f39307 36 * MyLCD.printf("Hola mbed!!!");
Suky 0:359653f39307 37 *
Suky 0:359653f39307 38 * MyLCD.vDrawImageBMP24Bits("IMG0.BMP");
Suky 0:359653f39307 39 *
Suky 0:359653f39307 40 * while(1){
Suky 0:359653f39307 41 * }
Suky 0:359653f39307 42 *}
Suky 0:359653f39307 43 * @endcode
Suky 0:359653f39307 44 */
Suky 0:359653f39307 45
Suky 0:359653f39307 46 #include "mbed.h"
Suky 0:359653f39307 47 #include "Fuentes.h"
Suky 0:359653f39307 48
Suky 0:359653f39307 49 #define ColorRed 0xf800
Suky 0:359653f39307 50 #define ColorGreen 0x400
Suky 0:359653f39307 51 #define ColorBlue 0x001f
Suky 0:359653f39307 52 #define ColorMarron 0x8208
Suky 0:359653f39307 53 #define ColorBlack 0x0
Suky 0:359653f39307 54 #define ColorWhite 0xffff
Suky 0:359653f39307 55 #define ColorMaroon 0x8000
Suky 0:359653f39307 56 #define ColorFuchsia 0xf81f
Suky 0:359653f39307 57 #define ColorVioleta 0x801f
Suky 0:359653f39307 58 #define ColorAzulMarino 0x14
Suky 0:359653f39307 59 #define ColorGray 0x8410
Suky 0:359653f39307 60 #define ColorOlive 0x8400
Suky 0:359653f39307 61 #define ColorNaranja 0xfc08
Suky 0:359653f39307 62 #define ColorYellow 0xffe0
Suky 0:359653f39307 63 #define ColorCian 0x87ff
Suky 0:359653f39307 64 #define ColorRosado 0xf810
Suky 0:359653f39307 65 #define ColorNavy 0x10
Suky 0:359653f39307 66 #define ColorPurple 0x8010
Suky 0:359653f39307 67 #define ColorTeal 0x410
Suky 0:359653f39307 68 #define ColorLime 0x7e0
Suky 0:359653f39307 69 #define ColorAqua 0x7ff
Suky 0:359653f39307 70
Suky 0:359653f39307 71 #define LCD_X_MAX 240
Suky 0:359653f39307 72 #define LCD_Y_MAX 320
Suky 0:359653f39307 73
Suky 0:359653f39307 74 class LCDTFT: public Stream {
Suky 0:359653f39307 75 public:
Suky 0:359653f39307 76 /** Crea LCDTFT interface
Suky 0:359653f39307 77 *
Suky 0:359653f39307 78 * @param RD
Suky 0:359653f39307 79 * @param WR
Suky 0:359653f39307 80 * @param RS
Suky 0:359653f39307 81 * @param CS
Suky 0:359653f39307 82 * @param RESET
Suky 0:359653f39307 83 * @param BusLCD (16-bits)
Suky 0:359653f39307 84 */
Suky 0:359653f39307 85 LCDTFT(PinName PIN_RD,PinName PIN_WR,PinName PIN_RS,PinName PIN_CS,PinName PIN_RESET, BusOut *BUSLCD);
Suky 0:359653f39307 86 /** Inicializa LCD
Suky 0:359653f39307 87 *
Suky 0:359653f39307 88 */
Suky 0:359653f39307 89 void vLCDTFTInit(void);
Suky 0:359653f39307 90 /** Fija parametros para escritura mediante printf
Suky 0:359653f39307 91 *
Suky 0:359653f39307 92 * @param Xo X inicial
Suky 0:359653f39307 93 * @param Yo Y inicial
Suky 0:359653f39307 94 * @param Xmin X minimo
Suky 0:359653f39307 95 * @param Xmax X maximo
Suky 0:359653f39307 96 * @param Alto Alto de letra (1,2,3..)
Suky 0:359653f39307 97 * @param Color Color de letra 16-bits
Suky 0:359653f39307 98 */
Suky 0:359653f39307 99 void vLCDTFTSetParametersPrintf(unsigned short Xo,unsigned short Yo,unsigned short Xmin,unsigned short Xmax,unsigned char Alto, unsigned short Color);
Suky 0:359653f39307 100 /** Pinta pantalla completa de color
Suky 0:359653f39307 101 * @param Color Color de 16-bits
Suky 0:359653f39307 102 */
Suky 0:359653f39307 103 void vLCDTFTFillScreen(unsigned short Color);
Suky 0:359653f39307 104 /** Dibuja punto en pantalla
Suky 0:359653f39307 105 * @param x Posicion x
Suky 0:359653f39307 106 * @param y Posicion y
Suky 0:359653f39307 107 * @param Color Color 16-bits
Suky 0:359653f39307 108 */
Suky 0:359653f39307 109 void vLCDTFTPoint(unsigned short x,unsigned short y,unsigned short Color);
Suky 0:359653f39307 110 /** Escribe string en LCD
Suky 0:359653f39307 111 * @param x X inicial
Suky 0:359653f39307 112 * @param y Y inicial
Suky 0:359653f39307 113 * @param *PtrText Texto a escribir
Suky 0:359653f39307 114 * @param *Fuente Fuente de letra a escribir (ARIAL)
Suky 0:359653f39307 115 * @param Alto Alto de letra (1,2,3)
Suky 0:359653f39307 116 * @param Color Color de 16-bits
Suky 0:359653f39307 117 */
Suky 0:359653f39307 118 void vLCDTFTText(unsigned short x,unsigned short y,const char *PtrText,const char (*Fuente)[5],unsigned char Alto,unsigned short Color);
Suky 0:359653f39307 119
Suky 0:359653f39307 120 void vLCDTFTLine(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2,unsigned short Color);
Suky 0:359653f39307 121 void vLCDTFTRectangle(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2,bool Filled,unsigned short Color);
Suky 0:359653f39307 122 void vLCDTFTCircle(unsigned short x,unsigned short y,unsigned short Radius,bool Filled,unsigned short Color);
Suky 0:359653f39307 123 /** Dibuja imagen ubicada en memoria de mbed (2Mbytes) centrada en patalla
Suky 0:359653f39307 124 * @param NameImagen nombre de imagen (ejm: IMAGEN.BMP)
Suky 0:359653f39307 125 */
Suky 0:359653f39307 126 void vDrawImageBMP24Bits(const char *NameImagen);
Suky 0:359653f39307 127 #if DOXYGEN_ONLY
Suky 0:359653f39307 128 /** Escribe un caracter en LCD
Suky 0:359653f39307 129 *
Suky 0:359653f39307 130 * @param c El caracter a escribir en LCD
Suky 0:359653f39307 131 */
Suky 0:359653f39307 132 int putc(int c);
Suky 0:359653f39307 133
Suky 0:359653f39307 134 /** Escribe un string formateado en LCD
Suky 0:359653f39307 135 *
Suky 0:359653f39307 136 * @param format A printf-style format string, followed by the
Suky 0:359653f39307 137 * variables to use in formating the string.
Suky 0:359653f39307 138 */
Suky 0:359653f39307 139 int printf(const char* format, ...);
Suky 0:359653f39307 140 #endif
Suky 0:359653f39307 141
Suky 0:359653f39307 142 private:
Suky 0:359653f39307 143 DigitalOut LCD_PIN_RD,LCD_PIN_WR,LCD_PIN_RS,LCD_PIN_CS,LCD_PIN_RESET;
Suky 0:359653f39307 144 BusOut *LCD_PORT;
Suky 0:359653f39307 145 unsigned short X,Y,X_min,X_max,_Alto,_Color;
Suky 0:359653f39307 146 // Stream implementation functions
Suky 0:359653f39307 147 virtual int _putc(int value);
Suky 0:359653f39307 148 virtual int _getc();
Suky 0:359653f39307 149
Suky 0:359653f39307 150 virtual void vLCDTFTWriteCommand(unsigned short Data);
Suky 0:359653f39307 151 virtual void vLCDTFTWriteData(unsigned short Data);
Suky 0:359653f39307 152 virtual void vLCDTFTWriteCommandData(unsigned short CMD,unsigned short Data);
Suky 0:359653f39307 153 virtual void vLCDTFTAddressSet(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2);
Suky 0:359653f39307 154 virtual void vLCDTFTAddressSetPoint(unsigned short x,unsigned short y);
Suky 0:359653f39307 155 };
Suky 0:359653f39307 156 // **************************************************************************************************************************************