LCD TFT for ssd0139 driver 8 bit mode - using portout for max speed
Dependents: TFT_CJS_ssd01399_portver_prettyfont TFT_CJS_ssd01399_portver_prettyfont snake_main_game ServerLatest
Fork of LCDTFT_ssd01399 by
LCDTFT.h@0:359653f39307, 2011-01-30 (annotated)
- Committer:
- Suky
- Date:
- Sun Jan 30 20:25:48 2011 +0000
- Revision:
- 0:359653f39307
- Child:
- 1:1085b6177f6e
Who changed what in which revision?
User | Revision | Line number | New 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 | // ************************************************************************************************************************************** |