diff options
Diffstat (limited to 'libraries/MultiLCD/ILI9341.h')
-rw-r--r-- | libraries/MultiLCD/ILI9341.h | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/libraries/MultiLCD/ILI9341.h b/libraries/MultiLCD/ILI9341.h new file mode 100644 index 0000000..e0075c4 --- /dev/null +++ b/libraries/MultiLCD/ILI9341.h @@ -0,0 +1,161 @@ +/* + 2012 Copyright (c) Seeed Technology Inc. + + Authors: Albert.Miao & Loovee, + Visweswara R (with initializtion code from TFT vendor) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ +#ifndef TFTv2_h +#define TFTv2_h + +#if defined(ARDUINO) && ARDUINO >= 100 +#define SEEEDUINO +#include <Arduino.h> +#else +#include <WProgram.h> +#endif +#include <avr/pgmspace.h> + +#include <SPI.h> + +//Basic Colors +#define RED 0xf800 +#define GREEN 0x07e0 +#define BLUE 0x001f +#define BLACK 0x0000 +#define YELLOW 0xffe0 +#define WHITE 0xffff + +//Other Colors +#define CYAN 0x07ff +#define BRIGHT_RED 0xf810 +#define GRAY1 0x8410 +#define GRAY2 0x4208 + +//TFT resolution 240*320 +#define MIN_X 0 +#define MIN_Y 0 +#define MAX_X 239 +#define MAX_Y 319 + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + +#define TFT_CS_LOW {DDRE |= 0x08;PORTE &=~ 0x08;} +#define TFT_CS_HIGH {DDRE |= 0x08;PORTE |= 0x08;} +#define TFT_DC_LOW {DDRH |= 0x08;PORTH &=~ 0x08;} +#define TFT_DC_HIGH {DDRH |= 0x08;PORTH |= 0x08;} +#define TFT_BL_OFF {DDRH |= 0x10;PORTH &=~ 0x10;} +#define TFT_BL_ON {DDRH |= 0x10;PORTH |= 0x10;} +#define TFT_RST_OFF {DDRD |= 0x10;PORTD |= 0x10;} +#define TFT_RST_ON {DDRD |= 0x10;PORTD &=~ 0x10;} + +#define YP A2 // must be an analog pin, use "An" notation! +#define XM A1 // must be an analog pin, use "An" notation! +#define YM 54 // can be a digital pin, this is A0 +#define XP 57 // can be a digital pin, this is A3 + +#elif defined(__AVR_ATmega32U4__) + +#define TFT_CS_LOW {DDRC |= 0x40;PORTC &=~ 0x40;} +#define TFT_CS_HIGH {DDRC |= 0x40;PORTC |= 0x40;} +#define TFT_DC_LOW {DDRD |= 0x80;PORTD &=~ 0x80;} +#define TFT_DC_HIGH {DDRD |= 0x80;PORTD |= 0x80;} +#define TFT_BL_OFF {DDRE |= 0x40;PORTE &=~ 0x40;} +#define TFT_BL_ON {DDRE |= 0x40;PORTE |= 0x40;} +#define TFT_RST_OFF {DDRD |= 0x10;PORTD |= 0x10;} +#define TFT_RST_ON {DDRD |= 0x10;PORTD &=~ 0x10;} + +#define YP A2 // must be an analog pin, use "An" notation! +#define XM A1 // must be an analog pin, use "An" notation! +#define YM 18 // can be a digital pin, this is A0 +#define XP 21 // can be a digital pin, this is A3 + +#else +#define TFT_CS_LOW {DDRD |= 0x20;PORTD &=~ 0x20;} +#define TFT_CS_HIGH {DDRD |= 0x20;PORTD |= 0x20;} +#define TFT_DC_LOW {DDRD |= 0x40;PORTD &=~ 0x40;} +#define TFT_DC_HIGH {DDRD |= 0x40;PORTD |= 0x40;} +#define TFT_BL_OFF {DDRD |= 0x80;PORTD &=~ 0x80;} +#define TFT_BL_ON {DDRD |= 0x80;PORTD |= 0x80;} +#define TFT_RST_OFF {DDRD |= 0x10;PORTD |= 0x10;} +#define TFT_RST_ON {DDRD |= 0x10;PORTD &=~ 0x10;} + + +#define YP A2 // must be an analog pin, use "An" notation! +#define XM A1 // must be an analog pin, use "An" notation! +#define YM 14 // can be a digital pin, this is A0 +#define XP 17 // can be a digital pin, this is A3 + +#endif + +#define TS_MINX 116*2 +#define TS_MAXX 890*2 +#define TS_MINY 83*2 +#define TS_MAXY 913*2 + +#ifndef INT8U +#define INT8U unsigned char +#endif +#ifndef INT16U +#define INT16U unsigned int +#endif + +extern const PROGMEM unsigned char simpleFont[][8]; + +class TFT +{ +public: + void TFTinit (void); + void setCol(INT16U StartCol,INT16U EndCol); + void setPage(INT16U StartPage,INT16U EndPage); + void setXY(INT16U poX, INT16U poY); + void setPixel(INT16U poX, INT16U poY,INT16U color); + void sendCMD(INT8U index); + void WRITE_Package(INT16U *data,INT8U howmany); + void WRITE_DATA(INT8U data); + void sendData(INT16U data); + INT8U Read_Register(INT8U Addr,INT8U xParameter); + void fillScreen(INT16U XL,INT16U XR,INT16U YU,INT16U YD,INT16U color); + void fillScreen(void); + INT8U readID(void); + + void drawChar(INT8U ascii,INT16U poX, INT16U poY,INT16U size, INT16U fgcolor); + void drawString(char *string,INT16U poX, INT16U poY,INT16U size,INT16U fgcolor); + void fillRectangle(INT16U poX, INT16U poY, INT16U length, INT16U width, INT16U color); + + void drawLine(INT16U x0,INT16U y0,INT16U x1,INT16U y1,INT16U color); + void drawVerticalLine(INT16U poX, INT16U poY,INT16U length,INT16U color); + void drawHorizontalLine(INT16U poX, INT16U poY,INT16U length,INT16U color); + void drawRectangle(INT16U poX, INT16U poY, INT16U length,INT16U width,INT16U color); + + void drawCircle(int poX, int poY, int r,INT16U color); + void fillCircle(int poX, int poY, int r,INT16U color); + + void drawTraingle(int poX1, int poY1, int poX2, int poY2, int poX3, int poY3, INT16U color); + INT8U drawNumber(long long_num,INT16U poX, INT16U poY,INT16U size,INT16U fgcolor); + INT8U drawFloat(float floatNumber,INT8U decimal,INT16U poX, INT16U poY,INT16U size,INT16U fgcolor); + INT8U drawFloat(float floatNumber,INT16U poX, INT16U poY,INT16U size,INT16U fgcolor); + +}; + +extern TFT Tft; + +#endif + +/********************************************************************************************************* + END FILE +*********************************************************************************************************/ |