summaryrefslogtreecommitdiff
path: root/libraries/MultiLCD/ILI9341.h
diff options
context:
space:
mode:
authorStanley Huang <stanleyhuangyc@gmail.com>2013-11-29 23:13:15 +1100
committerStanley Huang <stanleyhuangyc@gmail.com>2013-11-29 23:13:15 +1100
commit94ddea4cfac60df45f48db3b25b0d9c62c066d94 (patch)
tree32c26da9a1503451892d2e3216d2a6edf9552bd3 /libraries/MultiLCD/ILI9341.h
parenta9cac1d46f5399f163448d40ea5aa954efea9770 (diff)
download2021-arduino-obd-94ddea4cfac60df45f48db3b25b0d9c62c066d94.tar.gz
2021-arduino-obd-94ddea4cfac60df45f48db3b25b0d9c62c066d94.tar.bz2
2021-arduino-obd-94ddea4cfac60df45f48db3b25b0d9c62c066d94.zip
update MultiLCD library
Diffstat (limited to 'libraries/MultiLCD/ILI9341.h')
-rw-r--r--libraries/MultiLCD/ILI9341.h161
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
+*********************************************************************************************************/