![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
output
Fork of display by
ili9163lcd.h@3:7d97b4f535c6, 2018-10-04 (annotated)
- Committer:
- madhusudhana
- Date:
- Thu Oct 04 11:19:42 2018 +0000
- Revision:
- 3:7d97b4f535c6
- Parent:
- 2:e7a5b9bc75b4
second_version_display_code;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
madhusudhana | 2:e7a5b9bc75b4 | 1 | /** |
morita | 0:c0be4e018a09 | 2 | * @file ili9163lcd.h |
morita | 0:c0be4e018a09 | 3 | * @brief ILI9163 128x128 LCD Driver (Header file) |
morita | 0:c0be4e018a09 | 4 | * |
morita | 0:c0be4e018a09 | 5 | * This code has been ported from the ili9163lcd library for mbed |
morita | 0:c0be4e018a09 | 6 | * made by Jun Morita. |
morita | 0:c0be4e018a09 | 7 | * Source form <http://files.noccylabs.info/lib430/liblcd/ili9163lcd_8c.html> |
morita | 0:c0be4e018a09 | 8 | * |
morita | 0:c0be4e018a09 | 9 | * This code has been ported from the ili9163lcd library for avr made |
morita | 0:c0be4e018a09 | 10 | * by Simon Inns, to run on a msp430. |
morita | 0:c0be4e018a09 | 11 | * |
morita | 0:c0be4e018a09 | 12 | * This program is free software: you can redistribute it and/or modify |
morita | 0:c0be4e018a09 | 13 | * it under the terms of the GNU General Public License as published by |
morita | 0:c0be4e018a09 | 14 | * the Free Software Foundation, either version 3 of the License, or |
morita | 0:c0be4e018a09 | 15 | * (at your option) any later version. |
morita | 0:c0be4e018a09 | 16 | * |
morita | 0:c0be4e018a09 | 17 | * This program is distributed in the hope that it will be useful, |
morita | 0:c0be4e018a09 | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
morita | 0:c0be4e018a09 | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
morita | 0:c0be4e018a09 | 20 | * GNU General Public License for more details. |
morita | 0:c0be4e018a09 | 21 | * |
morita | 0:c0be4e018a09 | 22 | * You should have received a copy of the GNU General Public License |
morita | 0:c0be4e018a09 | 23 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
morita | 0:c0be4e018a09 | 24 | * |
morita | 0:c0be4e018a09 | 25 | * @author Jun Morita (iccraft) |
morita | 0:c0be4e018a09 | 26 | * @author Simon Inns <simon.inns@gmail.com> |
morita | 0:c0be4e018a09 | 27 | * @author Christopher Vagnetoft (NoccyLabs) |
morita | 0:c0be4e018a09 | 28 | * @copyright (C) 2012 Simon Inns |
morita | 0:c0be4e018a09 | 29 | * @copyright parts (C) 2012 NoccyLabs |
morita | 0:c0be4e018a09 | 30 | */ |
morita | 0:c0be4e018a09 | 31 | |
morita | 0:c0be4e018a09 | 32 | #ifndef ILI9163LCD_H_ |
morita | 0:c0be4e018a09 | 33 | #define ILI9163LCD_H_ |
morita | 0:c0be4e018a09 | 34 | |
rs27 | 1:b64c81071d96 | 35 | #include "mbed.h" |
rs27 | 1:b64c81071d96 | 36 | #include "font5x8.h" |
rs27 | 1:b64c81071d96 | 37 | #include "font8x8.h" |
rs27 | 1:b64c81071d96 | 38 | #include "font5x12.h" |
rs27 | 1:b64c81071d96 | 39 | #include "font11x16.h" |
rs27 | 1:b64c81071d96 | 40 | #include "font12x12.h" |
rs27 | 1:b64c81071d96 | 41 | #include "font24x23.h" |
rs27 | 1:b64c81071d96 | 42 | |
morita | 0:c0be4e018a09 | 43 | // Definitions for control lines (port C) |
morita | 0:c0be4e018a09 | 44 | #define LCD_WR (1 << 2) |
morita | 0:c0be4e018a09 | 45 | #define LCD_RS (1 << 4) |
morita | 0:c0be4e018a09 | 46 | #define LCD_RD (1 << 5) |
morita | 0:c0be4e018a09 | 47 | #define LCD_CS (1 << 6) |
morita | 0:c0be4e018a09 | 48 | #define LCD_RESET (1 << 7) |
morita | 0:c0be4e018a09 | 49 | |
morita | 0:c0be4e018a09 | 50 | // Screen orientation defines: |
morita | 0:c0be4e018a09 | 51 | // 0 = Ribbon at top |
morita | 0:c0be4e018a09 | 52 | // 1 = Ribbon at left |
morita | 0:c0be4e018a09 | 53 | // 2 = Ribbon at right |
morita | 0:c0be4e018a09 | 54 | // 3 = Ribbon at bottom |
morita | 0:c0be4e018a09 | 55 | #define LCD_ORIENTATION0 0 |
morita | 0:c0be4e018a09 | 56 | #define LCD_ORIENTATION1 96 |
morita | 0:c0be4e018a09 | 57 | #define LCD_ORIENTATION2 160 |
morita | 0:c0be4e018a09 | 58 | #define LCD_ORIENTATION3 192 |
morita | 0:c0be4e018a09 | 59 | |
rs27 | 1:b64c81071d96 | 60 | // eine Farbe belegt 5 Bit, |
rs27 | 1:b64c81071d96 | 61 | // die Farbe Grün wird 6 bit nch links geshiftet |
rs27 | 1:b64c81071d96 | 62 | // die Farbe Blau wird 11 bit nach links geshiftet |
rs27 | 1:b64c81071d96 | 63 | // some RGB color definitions BLUE GREEN RED |
rs27 | 1:b64c81071d96 | 64 | #define Black 0x0000 /* 0, 0, 0 */ |
rs27 | 1:b64c81071d96 | 65 | #define Navy 0x000F /* 0, 0,15 */ |
rs27 | 1:b64c81071d96 | 66 | #define DarkGreen 0x03C0 /* 0,15, 0 */ |
rs27 | 1:b64c81071d96 | 67 | #define DarkCyan 0x03EF /* 0, 128, 128 */ |
rs27 | 1:b64c81071d96 | 68 | #define Maroon 0x7800 /* 15, 0, 0 */ |
rs27 | 1:b64c81071d96 | 69 | #define Purple 0x780F /* 128, 0, 128 */ |
rs27 | 1:b64c81071d96 | 70 | #define Olive 0x7BE0 /* 128, 128, 0 */ |
rs27 | 1:b64c81071d96 | 71 | #define LightGrey 0xC618 /* 192, 192, 192 */ |
rs27 | 1:b64c81071d96 | 72 | #define DarkGrey 0x7BEF /* 128, 128, 128 */ |
rs27 | 1:b64c81071d96 | 73 | #define Red 0x001F /* 0, 0,31 */ |
rs27 | 1:b64c81071d96 | 74 | #define Green 0x07C0 /* 0,31, 0 */ |
rs27 | 1:b64c81071d96 | 75 | #define Cyan 0x07DF /* 0,31,31 */ |
rs27 | 1:b64c81071d96 | 76 | #define Blue 0xF800 /* 31, 0, 0 */ |
rs27 | 1:b64c81071d96 | 77 | #define Yellow 0xF81F /* 31, 0,31 */ |
rs27 | 1:b64c81071d96 | 78 | #define Magenta 0xFFC0 /* 31,31, 0 */ |
rs27 | 1:b64c81071d96 | 79 | #define White 0xFFFF /* 31,31,31 */ |
rs27 | 1:b64c81071d96 | 80 | #define Orange 0xFD20 /* 255, 165, 0 */ |
rs27 | 1:b64c81071d96 | 81 | #define GreenYellow 0xAFE5 /* 173, 255, 47 */ |
rs27 | 1:b64c81071d96 | 82 | #define LightBlue 0x04FF |
rs27 | 1:b64c81071d96 | 83 | |
morita | 0:c0be4e018a09 | 84 | // ILI9163 LCD Controller Commands |
morita | 0:c0be4e018a09 | 85 | #define NOP 0x00 |
morita | 0:c0be4e018a09 | 86 | #define SOFT_RESET 0x01 |
morita | 0:c0be4e018a09 | 87 | #define GET_RED_CHANNEL 0x06 |
morita | 0:c0be4e018a09 | 88 | #define GET_GREEN_CHANNEL 0x07 |
morita | 0:c0be4e018a09 | 89 | #define GET_BLUE_CHANNEL 0x08 |
morita | 0:c0be4e018a09 | 90 | #define GET_PIXEL_FORMAT 0x0C |
morita | 0:c0be4e018a09 | 91 | #define GET_POWER_MODE 0x0A |
morita | 0:c0be4e018a09 | 92 | #define GET_ADDRESS_MODE 0x0B |
morita | 0:c0be4e018a09 | 93 | #define GET_DISPLAY_MODE 0x0D |
morita | 0:c0be4e018a09 | 94 | #define GET_SIGNAL_MODE 0x0E |
morita | 0:c0be4e018a09 | 95 | #define GET_DIAGNOSTIC_RESULT 0x0F |
morita | 0:c0be4e018a09 | 96 | #define ENTER_SLEEP_MODE 0x10 |
morita | 0:c0be4e018a09 | 97 | #define EXIT_SLEEP_MODE 0x11 |
morita | 0:c0be4e018a09 | 98 | #define ENTER_PARTIAL_MODE 0x12 |
morita | 0:c0be4e018a09 | 99 | #define ENTER_NORMAL_MODE 0x13 |
morita | 0:c0be4e018a09 | 100 | #define EXIT_INVERT_MODE 0x20 |
morita | 0:c0be4e018a09 | 101 | #define ENTER_INVERT_MODE 0x21 |
morita | 0:c0be4e018a09 | 102 | #define SET_GAMMA_CURVE 0x26 |
morita | 0:c0be4e018a09 | 103 | #define SET_DISPLAY_OFF 0x28 |
morita | 0:c0be4e018a09 | 104 | #define SET_DISPLAY_ON 0x29 |
morita | 0:c0be4e018a09 | 105 | #define SET_COLUMN_ADDRESS 0x2A |
morita | 0:c0be4e018a09 | 106 | #define SET_PAGE_ADDRESS 0x2B |
morita | 0:c0be4e018a09 | 107 | #define WRITE_MEMORY_START 0x2C |
morita | 0:c0be4e018a09 | 108 | #define WRITE_LUT 0x2D |
morita | 0:c0be4e018a09 | 109 | #define READ_MEMORY_START 0x2E |
morita | 0:c0be4e018a09 | 110 | #define SET_PARTIAL_AREA 0x30 |
morita | 0:c0be4e018a09 | 111 | #define SET_SCROLL_AREA 0x33 |
morita | 0:c0be4e018a09 | 112 | #define SET_TEAR_OFF 0x34 |
morita | 0:c0be4e018a09 | 113 | #define SET_TEAR_ON 0x35 |
morita | 0:c0be4e018a09 | 114 | #define SET_ADDRESS_MODE 0x36 |
morita | 0:c0be4e018a09 | 115 | #define SET_SCROLL_START 0X37 |
morita | 0:c0be4e018a09 | 116 | #define EXIT_IDLE_MODE 0x38 |
morita | 0:c0be4e018a09 | 117 | #define ENTER_IDLE_MODE 0x39 |
morita | 0:c0be4e018a09 | 118 | #define SET_PIXEL_FORMAT 0x3A |
morita | 0:c0be4e018a09 | 119 | #define WRITE_MEMORY_CONTINUE 0x3C |
morita | 0:c0be4e018a09 | 120 | #define READ_MEMORY_CONTINUE 0x3E |
morita | 0:c0be4e018a09 | 121 | #define SET_TEAR_SCANLINE 0x44 |
morita | 0:c0be4e018a09 | 122 | #define GET_SCANLINE 0x45 |
morita | 0:c0be4e018a09 | 123 | #define READ_ID1 0xDA |
morita | 0:c0be4e018a09 | 124 | #define READ_ID2 0xDB |
morita | 0:c0be4e018a09 | 125 | #define READ_ID3 0xDC |
morita | 0:c0be4e018a09 | 126 | #define FRAME_RATE_CONTROL1 0xB1 |
morita | 0:c0be4e018a09 | 127 | #define FRAME_RATE_CONTROL2 0xB2 |
morita | 0:c0be4e018a09 | 128 | #define FRAME_RATE_CONTROL3 0xB3 |
morita | 0:c0be4e018a09 | 129 | #define DISPLAY_INVERSION 0xB4 |
morita | 0:c0be4e018a09 | 130 | #define SOURCE_DRIVER_DIRECTION 0xB7 |
morita | 0:c0be4e018a09 | 131 | #define GATE_DRIVER_DIRECTION 0xB8 |
morita | 0:c0be4e018a09 | 132 | #define POWER_CONTROL1 0xC0 |
morita | 0:c0be4e018a09 | 133 | #define POWER_CONTROL2 0xC1 |
morita | 0:c0be4e018a09 | 134 | #define POWER_CONTROL3 0xC2 |
morita | 0:c0be4e018a09 | 135 | #define POWER_CONTROL4 0xC3 |
morita | 0:c0be4e018a09 | 136 | #define POWER_CONTROL5 0xC4 |
morita | 0:c0be4e018a09 | 137 | #define VCOM_CONTROL1 0xC5 |
morita | 0:c0be4e018a09 | 138 | #define VCOM_CONTROL2 0xC6 |
morita | 0:c0be4e018a09 | 139 | #define VCOM_OFFSET_CONTROL 0xC7 |
morita | 0:c0be4e018a09 | 140 | #define WRITE_ID4_VALUE 0xD3 |
morita | 0:c0be4e018a09 | 141 | #define NV_MEMORY_FUNCTION1 0xD7 |
morita | 0:c0be4e018a09 | 142 | #define NV_MEMORY_FUNCTION2 0xDE |
morita | 0:c0be4e018a09 | 143 | #define POSITIVE_GAMMA_CORRECT 0xE0 |
morita | 0:c0be4e018a09 | 144 | #define NEGATIVE_GAMMA_CORRECT 0xE1 |
morita | 0:c0be4e018a09 | 145 | #define GAM_R_SEL 0xF2 |
morita | 0:c0be4e018a09 | 146 | |
madhusudhana | 3:7d97b4f535c6 | 147 | //ADDING |
madhusudhana | 3:7d97b4f535c6 | 148 | #define ST7735_NOP 0x0 |
madhusudhana | 3:7d97b4f535c6 | 149 | #define ST7735_SWRESET 0x01 |
madhusudhana | 3:7d97b4f535c6 | 150 | #define ST7735_RDDID 0x04 |
madhusudhana | 3:7d97b4f535c6 | 151 | #define ST7735_RDDST 0x09 |
rs27 | 1:b64c81071d96 | 152 | |
madhusudhana | 3:7d97b4f535c6 | 153 | #define ST7735_SLPIN 0x10 |
madhusudhana | 3:7d97b4f535c6 | 154 | #define ST7735_SLPOUT 0x11 |
madhusudhana | 3:7d97b4f535c6 | 155 | #define ST7735_PTLON 0x12 |
madhusudhana | 3:7d97b4f535c6 | 156 | #define ST7735_NORON 0x13 |
madhusudhana | 3:7d97b4f535c6 | 157 | |
madhusudhana | 3:7d97b4f535c6 | 158 | #define ST7735_INVOFF 0x20 |
madhusudhana | 3:7d97b4f535c6 | 159 | #define ST7735_INVON 0x21 |
madhusudhana | 3:7d97b4f535c6 | 160 | #define ST7735_DISPOFF 0x28 |
madhusudhana | 3:7d97b4f535c6 | 161 | #define ST7735_DISPON 0x29 |
madhusudhana | 3:7d97b4f535c6 | 162 | #define ST7735_CASET 0x2A |
madhusudhana | 3:7d97b4f535c6 | 163 | #define ST7735_RASET 0x2B |
madhusudhana | 3:7d97b4f535c6 | 164 | #define ST7735_RAMWR 0x2C |
madhusudhana | 3:7d97b4f535c6 | 165 | #define ST7735_RAMRD 0x2E |
madhusudhana | 3:7d97b4f535c6 | 166 | |
madhusudhana | 3:7d97b4f535c6 | 167 | #define ST7735_COLMOD 0x3A |
madhusudhana | 3:7d97b4f535c6 | 168 | #define ST7735_MADCTL 0x36 |
madhusudhana | 3:7d97b4f535c6 | 169 | |
madhusudhana | 3:7d97b4f535c6 | 170 | |
madhusudhana | 3:7d97b4f535c6 | 171 | #define ST7735_FRMCTR1 0xB1 |
madhusudhana | 3:7d97b4f535c6 | 172 | #define ST7735_FRMCTR2 0xB2 |
madhusudhana | 3:7d97b4f535c6 | 173 | #define ST7735_FRMCTR3 0xB3 |
madhusudhana | 3:7d97b4f535c6 | 174 | #define ST7735_INVCTR 0xB4 |
madhusudhana | 3:7d97b4f535c6 | 175 | #define ST7735_DISSET5 0xB6 |
madhusudhana | 3:7d97b4f535c6 | 176 | |
madhusudhana | 3:7d97b4f535c6 | 177 | #define ST7735_PWCTR1 0xC0 |
madhusudhana | 3:7d97b4f535c6 | 178 | #define ST7735_PWCTR2 0xC1 |
madhusudhana | 3:7d97b4f535c6 | 179 | #define ST7735_PWCTR3 0xC2 |
madhusudhana | 3:7d97b4f535c6 | 180 | #define ST7735_PWCTR4 0xC3 |
madhusudhana | 3:7d97b4f535c6 | 181 | #define ST7735_PWCTR5 0xC4 |
madhusudhana | 3:7d97b4f535c6 | 182 | #define ST7735_VMCTR1 0xC5 |
madhusudhana | 3:7d97b4f535c6 | 183 | |
madhusudhana | 3:7d97b4f535c6 | 184 | #define ST7735_RDID1 0xDA |
madhusudhana | 3:7d97b4f535c6 | 185 | #define ST7735_RDID2 0xDB |
madhusudhana | 3:7d97b4f535c6 | 186 | #define ST7735_RDID3 0xDC |
madhusudhana | 3:7d97b4f535c6 | 187 | #define ST7735_RDID4 0xDD |
madhusudhana | 3:7d97b4f535c6 | 188 | |
madhusudhana | 3:7d97b4f535c6 | 189 | #define ST7735_PWCTR6 0xFC |
madhusudhana | 3:7d97b4f535c6 | 190 | |
madhusudhana | 3:7d97b4f535c6 | 191 | #define ST7735_GMCTRP1 0xE0 |
madhusudhana | 3:7d97b4f535c6 | 192 | #define ST7735_GMCTRN1 0xE1 |
madhusudhana | 3:7d97b4f535c6 | 193 | |
madhusudhana | 3:7d97b4f535c6 | 194 | //ADDING |
madhusudhana | 3:7d97b4f535c6 | 195 | #define _TFTWIDTH 240 |
madhusudhana | 3:7d97b4f535c6 | 196 | #define _TFTHEIGHT 320 |
madhusudhana | 3:7d97b4f535c6 | 197 | |
madhusudhana | 3:7d97b4f535c6 | 198 | #define ILI9340_NOP 0x00 |
madhusudhana | 3:7d97b4f535c6 | 199 | #define ILI9340_SWRESET 0x01 |
madhusudhana | 3:7d97b4f535c6 | 200 | #define ILI9340_RDDID 0x04 |
madhusudhana | 3:7d97b4f535c6 | 201 | #define ILI9340_RDDST 0x09 |
madhusudhana | 3:7d97b4f535c6 | 202 | |
madhusudhana | 3:7d97b4f535c6 | 203 | #define ILI9340_SLPIN 0x10 |
madhusudhana | 3:7d97b4f535c6 | 204 | #define ILI9340_SLPOUT 0x11 |
madhusudhana | 3:7d97b4f535c6 | 205 | #define ILI9340_PTLON 0x12 |
madhusudhana | 3:7d97b4f535c6 | 206 | #define ILI9340_NORON 0x13 |
madhusudhana | 3:7d97b4f535c6 | 207 | |
madhusudhana | 3:7d97b4f535c6 | 208 | #define ILI9340_RDMODE 0x0A |
madhusudhana | 3:7d97b4f535c6 | 209 | #define ILI9340_RDMADCTL 0x0B |
madhusudhana | 3:7d97b4f535c6 | 210 | #define ILI9340_RDPIXFMT 0x0C |
madhusudhana | 3:7d97b4f535c6 | 211 | #define ILI9340_RDIMGFMT 0x0A |
madhusudhana | 3:7d97b4f535c6 | 212 | #define ILI9340_RDSELFDIAG 0x0F |
madhusudhana | 3:7d97b4f535c6 | 213 | |
madhusudhana | 3:7d97b4f535c6 | 214 | #define ILI9340_INVOFF 0x20 |
madhusudhana | 3:7d97b4f535c6 | 215 | #define ILI9340_INVON 0x21 |
madhusudhana | 3:7d97b4f535c6 | 216 | #define ILI9340_GAMMASET 0x26 |
madhusudhana | 3:7d97b4f535c6 | 217 | #define ILI9340_DISPOFF 0x28 |
madhusudhana | 3:7d97b4f535c6 | 218 | #define ILI9340_DISPON 0x29 |
madhusudhana | 3:7d97b4f535c6 | 219 | |
madhusudhana | 3:7d97b4f535c6 | 220 | #define ILI9340_CASET 0x2A |
madhusudhana | 3:7d97b4f535c6 | 221 | #define ILI9340_PASET 0x2B |
madhusudhana | 3:7d97b4f535c6 | 222 | #define ILI9340_RAMWR 0x2C |
madhusudhana | 3:7d97b4f535c6 | 223 | #define ILI9340_RAMRD 0x2E |
madhusudhana | 3:7d97b4f535c6 | 224 | |
madhusudhana | 3:7d97b4f535c6 | 225 | #define ILI9340_PTLAR 0x30 |
madhusudhana | 3:7d97b4f535c6 | 226 | #define ILI9340_MADCTL 0x36 |
madhusudhana | 3:7d97b4f535c6 | 227 | |
madhusudhana | 3:7d97b4f535c6 | 228 | |
madhusudhana | 3:7d97b4f535c6 | 229 | #define ILI9340_MADCTL_MY 0x80 |
madhusudhana | 3:7d97b4f535c6 | 230 | #define ILI9340_MADCTL_MX 0x40 |
madhusudhana | 3:7d97b4f535c6 | 231 | #define ILI9340_MADCTL_MV 0x20 |
madhusudhana | 3:7d97b4f535c6 | 232 | #define ILI9340_MADCTL_ML 0x10 |
madhusudhana | 3:7d97b4f535c6 | 233 | #define ILI9340_MADCTL_RGB 0x00 |
madhusudhana | 3:7d97b4f535c6 | 234 | #define ILI9340_MADCTL_BGR 0x08 |
madhusudhana | 3:7d97b4f535c6 | 235 | #define ILI9340_MADCTL_MH 0x04 |
madhusudhana | 3:7d97b4f535c6 | 236 | |
madhusudhana | 3:7d97b4f535c6 | 237 | #define ILI9340_PIXFMT 0x3A |
madhusudhana | 3:7d97b4f535c6 | 238 | |
madhusudhana | 3:7d97b4f535c6 | 239 | #define ILI9340_FRMCTR1 0xB1 |
madhusudhana | 3:7d97b4f535c6 | 240 | #define ILI9340_FRMCTR2 0xB2 |
madhusudhana | 3:7d97b4f535c6 | 241 | #define ILI9340_FRMCTR3 0xB3 |
madhusudhana | 3:7d97b4f535c6 | 242 | #define ILI9340_INVCTR 0xB4 |
madhusudhana | 3:7d97b4f535c6 | 243 | #define ILI9340_DFUNCTR 0xB6 |
madhusudhana | 3:7d97b4f535c6 | 244 | |
madhusudhana | 3:7d97b4f535c6 | 245 | #define ILI9340_PWCTR1 0xC0 |
madhusudhana | 3:7d97b4f535c6 | 246 | #define ILI9340_PWCTR2 0xC1 |
madhusudhana | 3:7d97b4f535c6 | 247 | #define ILI9340_PWCTR3 0xC2 |
madhusudhana | 3:7d97b4f535c6 | 248 | #define ILI9340_PWCTR4 0xC3 |
madhusudhana | 3:7d97b4f535c6 | 249 | #define ILI9340_PWCTR5 0xC4 |
madhusudhana | 3:7d97b4f535c6 | 250 | #define ILI9340_VMCTR1 0xC5 |
madhusudhana | 3:7d97b4f535c6 | 251 | #define ILI9340_VMCTR2 0xC7 |
madhusudhana | 3:7d97b4f535c6 | 252 | |
madhusudhana | 3:7d97b4f535c6 | 253 | #define ILI9340_RDID1 0xDA |
madhusudhana | 3:7d97b4f535c6 | 254 | #define ILI9340_RDID2 0xDB |
madhusudhana | 3:7d97b4f535c6 | 255 | #define ILI9340_RDID3 0xDC |
madhusudhana | 3:7d97b4f535c6 | 256 | #define ILI9340_RDID4 0xDD |
madhusudhana | 3:7d97b4f535c6 | 257 | |
madhusudhana | 3:7d97b4f535c6 | 258 | #define ILI9340_GMCTRP1 0xE0 |
madhusudhana | 3:7d97b4f535c6 | 259 | #define ILI9340_GMCTRN1 0xE1 |
madhusudhana | 3:7d97b4f535c6 | 260 | |
madhusudhana | 3:7d97b4f535c6 | 261 | |
madhusudhana | 3:7d97b4f535c6 | 262 | #define ST7735_CMD 0x100 |
madhusudhana | 3:7d97b4f535c6 | 263 | #define ST7735_DLY 0x200 |
madhusudhana | 3:7d97b4f535c6 | 264 | #define ST7735_END 0x400 |
rs27 | 1:b64c81071d96 | 265 | class ILI9163 { |
rs27 | 1:b64c81071d96 | 266 | public: |
rs27 | 1:b64c81071d96 | 267 | |
rs27 | 1:b64c81071d96 | 268 | // Das ILI9163 Objekt anlegen |
rs27 | 1:b64c81071d96 | 269 | // |
rs27 | 1:b64c81071d96 | 270 | // @param D2 SCK_ |
rs27 | 1:b64c81071d96 | 271 | // @param D3 SDA |
rs27 | 1:b64c81071d96 | 272 | // @param D4 A0_ |
rs27 | 1:b64c81071d96 | 273 | // @param D5 RESET pin connected to RESET of display |
rs27 | 1:b64c81071d96 | 274 | // @param D6 CS cs pin connected to CS of display |
rs27 | 1:b64c81071d96 | 275 | // |
rs27 | 1:b64c81071d96 | 276 | // ILI9163 tft(D2,D3,D4,D5,D6); |
rs27 | 1:b64c81071d96 | 277 | // |
madhusudhana | 3:7d97b4f535c6 | 278 | ILI9163(PinName SCK, PinName SDA, PinName RESET, PinName CS); |
morita | 0:c0be4e018a09 | 279 | |
rs27 | 1:b64c81071d96 | 280 | DigitalOut SCK_; |
rs27 | 1:b64c81071d96 | 281 | DigitalOut SDA_; |
rs27 | 1:b64c81071d96 | 282 | DigitalOut RESET_; |
rs27 | 1:b64c81071d96 | 283 | DigitalOut CS_; |
rs27 | 1:b64c81071d96 | 284 | |
rs27 | 1:b64c81071d96 | 285 | uint8_t tm; |
rs27 | 1:b64c81071d96 | 286 | uint8_t R,G,B; |
rs27 | 1:b64c81071d96 | 287 | uint8_t RGB_state; |
rs27 | 1:b64c81071d96 | 288 | |
rs27 | 1:b64c81071d96 | 289 | // font Array |
rs27 | 1:b64c81071d96 | 290 | unsigned char* font; |
rs27 | 1:b64c81071d96 | 291 | uint8_t font_bp_char; // Bytes pro Zeichen |
rs27 | 1:b64c81071d96 | 292 | uint8_t font_hor; // Bytes Horizontal |
rs27 | 1:b64c81071d96 | 293 | uint8_t font_vert; // Bytes Vertikal |
rs27 | 1:b64c81071d96 | 294 | uint8_t font_bp_line; // Bytes pro Zeile |
rs27 | 1:b64c81071d96 | 295 | uint8_t font_size; // Vergrößerung des Zeichens |
rs27 | 1:b64c81071d96 | 296 | // Macros and in-lines: |
rs27 | 1:b64c81071d96 | 297 | |
rs27 | 1:b64c81071d96 | 298 | // Translates a 3 byte RGB value into a 2 byte value for the LCD (values should be 0-31) |
rs27 | 1:b64c81071d96 | 299 | inline uint16_t decodeRgbValue(uint8_t r, uint8_t g, uint8_t b) |
rs27 | 1:b64c81071d96 | 300 | { |
morita | 0:c0be4e018a09 | 301 | return (b << 11) | (g << 6) | (r); |
rs27 | 1:b64c81071d96 | 302 | } |
morita | 0:c0be4e018a09 | 303 | |
rs27 | 1:b64c81071d96 | 304 | // This routine takes a row number from 0 to 20 and |
rs27 | 1:b64c81071d96 | 305 | // returns the x coordinate on the screen (0-127) to make |
rs27 | 1:b64c81071d96 | 306 | // it easy to place text |
rs27 | 1:b64c81071d96 | 307 | inline uint8_t lcdTextX(uint8_t x) { return x*font_vert; } |
rs27 | 1:b64c81071d96 | 308 | |
rs27 | 1:b64c81071d96 | 309 | // This routine takes a column number from 0 to 20 and |
rs27 | 1:b64c81071d96 | 310 | // returns the y coordinate on the screen (0-127) to make |
rs27 | 1:b64c81071d96 | 311 | // it easy to place text |
rs27 | 1:b64c81071d96 | 312 | inline uint8_t lcdTextY(uint8_t y) { return y*font_hor; } |
rs27 | 1:b64c81071d96 | 313 | |
rs27 | 1:b64c81071d96 | 314 | // LCD function prototypes |
madhusudhana | 3:7d97b4f535c6 | 315 | void mosi_test(void); |
madhusudhana | 3:7d97b4f535c6 | 316 | |
rs27 | 1:b64c81071d96 | 317 | void lcdReset(void); |
rs27 | 1:b64c81071d96 | 318 | void lcdWriteCommand(uint8_t address); |
madhusudhana | 3:7d97b4f535c6 | 319 | void WriteData(uint8_t Data); |
rs27 | 1:b64c81071d96 | 320 | void lcdWriteParameter(uint8_t parameter); |
rs27 | 1:b64c81071d96 | 321 | void lcdWriteData(uint8_t dataByte1, uint8_t dataByte2); |
rs27 | 1:b64c81071d96 | 322 | void lcdInitialise(uint8_t orientation); |
morita | 0:c0be4e018a09 | 323 | |
rs27 | 1:b64c81071d96 | 324 | void lcdClearDisplay(uint16_t colour); |
rs27 | 1:b64c81071d96 | 325 | void lcdPlot(uint8_t x, uint8_t y, uint16_t colour); |
rs27 | 1:b64c81071d96 | 326 | void lcdLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t colour); |
rs27 | 1:b64c81071d96 | 327 | void lcdRectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t colour); |
rs27 | 1:b64c81071d96 | 328 | void lcdFilledRectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t colour); |
rs27 | 1:b64c81071d96 | 329 | void lcdCircle(int16_t xCentre, int16_t yCentre, int16_t radius, uint16_t colour); |
morita | 0:c0be4e018a09 | 330 | |
rs27 | 1:b64c81071d96 | 331 | // select the font to use |
rs27 | 1:b64c81071d96 | 332 | // |
rs27 | 1:b64c81071d96 | 333 | // @param f pointer to font array |
rs27 | 1:b64c81071d96 | 334 | // |
rs27 | 1:b64c81071d96 | 335 | // font array can created with GLCD Font Creator from http://www.mikroe.com |
rs27 | 1:b64c81071d96 | 336 | // you have to add 4 parameter at the beginning of the font array to use: |
rs27 | 1:b64c81071d96 | 337 | // - the number of byte / char |
rs27 | 1:b64c81071d96 | 338 | // - the vertial size in pixel |
rs27 | 1:b64c81071d96 | 339 | // - the horizontal size in pixel |
rs27 | 1:b64c81071d96 | 340 | // - the number of byte per vertical line |
rs27 | 1:b64c81071d96 | 341 | // you also have to change the array to char[] |
rs27 | 1:b64c81071d96 | 342 | // |
rs27 | 1:b64c81071d96 | 343 | void set_font(unsigned char* f); |
rs27 | 1:b64c81071d96 | 344 | |
rs27 | 1:b64c81071d96 | 345 | void lcdPutCh(unsigned char character, uint8_t x, uint8_t y, uint16_t fgColour, uint16_t bgColour); |
rs27 | 1:b64c81071d96 | 346 | void lcdPutS(const char *string, uint8_t x, uint8_t y, uint16_t fgColour, uint16_t bgColour); |
morita | 0:c0be4e018a09 | 347 | |
rs27 | 1:b64c81071d96 | 348 | }; // end class |
morita | 0:c0be4e018a09 | 349 | |
morita | 0:c0be4e018a09 | 350 | #endif /* ILI9163LCD_H_ */ |