Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Adafruit_ST7735 by
Adafruit_ST7735.h@4:80075830f886, 2015-07-30 (annotated)
- Committer:
- justinkim
- Date:
- Thu Jul 30 05:15:46 2015 +0000
- Revision:
- 4:80075830f886
- Parent:
- 3:d247ed0b9bed
- Child:
- 7:20134e1718b2
add to DrawBitmap file API
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| SomeRandomBloke | 0:99ee879ef5a9 | 1 | /*************************************************** |
| SomeRandomBloke | 0:99ee879ef5a9 | 2 | This is a library for the Adafruit 1.8" SPI display. |
| SomeRandomBloke | 0:99ee879ef5a9 | 3 | This library works with the Adafruit 1.8" TFT Breakout w/SD card |
| SomeRandomBloke | 0:99ee879ef5a9 | 4 | ----> http://www.adafruit.com/products/358 |
| SomeRandomBloke | 0:99ee879ef5a9 | 5 | as well as Adafruit raw 1.8" TFT display |
| SomeRandomBloke | 0:99ee879ef5a9 | 6 | ----> http://www.adafruit.com/products/618 |
| SomeRandomBloke | 0:99ee879ef5a9 | 7 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 8 | Check out the links above for our tutorials and wiring diagrams |
| SomeRandomBloke | 0:99ee879ef5a9 | 9 | These displays use SPI to communicate, 4 or 5 pins are required to |
| SomeRandomBloke | 0:99ee879ef5a9 | 10 | interface (RST is optional) |
| SomeRandomBloke | 0:99ee879ef5a9 | 11 | Adafruit invests time and resources providing this open source code, |
| SomeRandomBloke | 0:99ee879ef5a9 | 12 | please support Adafruit and open-source hardware by purchasing |
| SomeRandomBloke | 0:99ee879ef5a9 | 13 | products from Adafruit! |
| SomeRandomBloke | 0:99ee879ef5a9 | 14 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 15 | Written by Limor Fried/Ladyada for Adafruit Industries. |
| SomeRandomBloke | 0:99ee879ef5a9 | 16 | MIT license, all text above must be included in any redistribution |
| SomeRandomBloke | 0:99ee879ef5a9 | 17 | ****************************************************/ |
| SomeRandomBloke | 0:99ee879ef5a9 | 18 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 19 | #ifndef _ADAFRUIT_ST7735H_ |
| SomeRandomBloke | 0:99ee879ef5a9 | 20 | #define _ADAFRUIT_ST7735H_ |
| SomeRandomBloke | 0:99ee879ef5a9 | 21 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 22 | #include "mbed.h" |
| SomeRandomBloke | 0:99ee879ef5a9 | 23 | #include "Adafruit_GFX.h" |
| SomeRandomBloke | 0:99ee879ef5a9 | 24 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 25 | #define boolean bool |
| SomeRandomBloke | 0:99ee879ef5a9 | 26 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 27 | // some flags for initR() :( |
| SomeRandomBloke | 0:99ee879ef5a9 | 28 | #define INITR_GREENTAB 0x0 |
| SomeRandomBloke | 0:99ee879ef5a9 | 29 | #define INITR_REDTAB 0x1 |
| justinkim | 3:d247ed0b9bed | 30 | #define INITR_BLACKTAB 0x2 |
| SomeRandomBloke | 0:99ee879ef5a9 | 31 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 32 | #define ST7735_TFTWIDTH 128 |
| SomeRandomBloke | 0:99ee879ef5a9 | 33 | #define ST7735_TFTHEIGHT 160 |
| SomeRandomBloke | 0:99ee879ef5a9 | 34 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 35 | #define ST7735_NOP 0x00 |
| SomeRandomBloke | 0:99ee879ef5a9 | 36 | #define ST7735_SWRESET 0x01 |
| SomeRandomBloke | 0:99ee879ef5a9 | 37 | #define ST7735_RDDID 0x04 |
| SomeRandomBloke | 0:99ee879ef5a9 | 38 | #define ST7735_RDDST 0x09 |
| SomeRandomBloke | 0:99ee879ef5a9 | 39 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 40 | #define ST7735_SLPIN 0x10 |
| SomeRandomBloke | 0:99ee879ef5a9 | 41 | #define ST7735_SLPOUT 0x11 |
| SomeRandomBloke | 0:99ee879ef5a9 | 42 | #define ST7735_PTLON 0x12 |
| SomeRandomBloke | 0:99ee879ef5a9 | 43 | #define ST7735_NORON 0x13 |
| SomeRandomBloke | 0:99ee879ef5a9 | 44 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 45 | #define ST7735_INVOFF 0x20 |
| SomeRandomBloke | 0:99ee879ef5a9 | 46 | #define ST7735_INVON 0x21 |
| SomeRandomBloke | 0:99ee879ef5a9 | 47 | #define ST7735_DISPOFF 0x28 |
| SomeRandomBloke | 0:99ee879ef5a9 | 48 | #define ST7735_DISPON 0x29 |
| SomeRandomBloke | 0:99ee879ef5a9 | 49 | #define ST7735_CASET 0x2A |
| SomeRandomBloke | 0:99ee879ef5a9 | 50 | #define ST7735_RASET 0x2B |
| SomeRandomBloke | 0:99ee879ef5a9 | 51 | #define ST7735_RAMWR 0x2C |
| SomeRandomBloke | 0:99ee879ef5a9 | 52 | #define ST7735_RAMRD 0x2E |
| SomeRandomBloke | 0:99ee879ef5a9 | 53 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 54 | #define ST7735_PTLAR 0x30 |
| SomeRandomBloke | 0:99ee879ef5a9 | 55 | #define ST7735_COLMOD 0x3A |
| SomeRandomBloke | 0:99ee879ef5a9 | 56 | #define ST7735_MADCTL 0x36 |
| SomeRandomBloke | 0:99ee879ef5a9 | 57 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 58 | #define ST7735_FRMCTR1 0xB1 |
| SomeRandomBloke | 0:99ee879ef5a9 | 59 | #define ST7735_FRMCTR2 0xB2 |
| SomeRandomBloke | 0:99ee879ef5a9 | 60 | #define ST7735_FRMCTR3 0xB3 |
| SomeRandomBloke | 0:99ee879ef5a9 | 61 | #define ST7735_INVCTR 0xB4 |
| SomeRandomBloke | 0:99ee879ef5a9 | 62 | #define ST7735_DISSET5 0xB6 |
| SomeRandomBloke | 0:99ee879ef5a9 | 63 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 64 | #define ST7735_PWCTR1 0xC0 |
| SomeRandomBloke | 0:99ee879ef5a9 | 65 | #define ST7735_PWCTR2 0xC1 |
| SomeRandomBloke | 0:99ee879ef5a9 | 66 | #define ST7735_PWCTR3 0xC2 |
| SomeRandomBloke | 0:99ee879ef5a9 | 67 | #define ST7735_PWCTR4 0xC3 |
| SomeRandomBloke | 0:99ee879ef5a9 | 68 | #define ST7735_PWCTR5 0xC4 |
| SomeRandomBloke | 0:99ee879ef5a9 | 69 | #define ST7735_VMCTR1 0xC5 |
| SomeRandomBloke | 0:99ee879ef5a9 | 70 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 71 | #define ST7735_RDID1 0xDA |
| SomeRandomBloke | 0:99ee879ef5a9 | 72 | #define ST7735_RDID2 0xDB |
| SomeRandomBloke | 0:99ee879ef5a9 | 73 | #define ST7735_RDID3 0xDC |
| SomeRandomBloke | 0:99ee879ef5a9 | 74 | #define ST7735_RDID4 0xDD |
| SomeRandomBloke | 0:99ee879ef5a9 | 75 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 76 | #define ST7735_PWCTR6 0xFC |
| SomeRandomBloke | 0:99ee879ef5a9 | 77 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 78 | #define ST7735_GMCTRP1 0xE0 |
| SomeRandomBloke | 0:99ee879ef5a9 | 79 | #define ST7735_GMCTRN1 0xE1 |
| SomeRandomBloke | 0:99ee879ef5a9 | 80 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 81 | // Color definitions |
| SomeRandomBloke | 0:99ee879ef5a9 | 82 | #define ST7735_BLACK 0x0000 |
| justinkim | 4:80075830f886 | 83 | #define ST7735_BLUE 0x001F |
| justinkim | 4:80075830f886 | 84 | #define ST7735_RED 0xF800 |
| SomeRandomBloke | 0:99ee879ef5a9 | 85 | #define ST7735_GREEN 0x07E0 |
| justinkim | 4:80075830f886 | 86 | #define ST7735_CYAN 0x07FF |
| SomeRandomBloke | 0:99ee879ef5a9 | 87 | #define ST7735_MAGENTA 0xF81F |
| justinkim | 4:80075830f886 | 88 | #define ST7735_YELLOW 0xFFE0 |
| SomeRandomBloke | 0:99ee879ef5a9 | 89 | #define ST7735_WHITE 0xFFFF |
| SomeRandomBloke | 0:99ee879ef5a9 | 90 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 91 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 92 | class Adafruit_ST7735 : public Adafruit_GFX { |
| SomeRandomBloke | 0:99ee879ef5a9 | 93 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 94 | public: |
| SomeRandomBloke | 0:99ee879ef5a9 | 95 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 96 | Adafruit_ST7735(PinName mosi, PinName miso, PinName sck, PinName CS, PinName RS, PinName RST); |
| SomeRandomBloke | 0:99ee879ef5a9 | 97 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 98 | void initB(void); // for ST7735B displays |
| SomeRandomBloke | 0:99ee879ef5a9 | 99 | void initR(uint8_t options = INITR_GREENTAB); // for ST7735R |
| SomeRandomBloke | 0:99ee879ef5a9 | 100 | void setAddrWindow(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1); |
| SomeRandomBloke | 0:99ee879ef5a9 | 101 | void pushColor(uint16_t color); |
| justinkim | 3:d247ed0b9bed | 102 | virtual void fillScreen(uint16_t color); |
| justinkim | 3:d247ed0b9bed | 103 | virtual void drawPixel(int16_t x, int16_t y, uint16_t color); |
| justinkim | 3:d247ed0b9bed | 104 | virtual void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color); |
| justinkim | 3:d247ed0b9bed | 105 | virtual void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color); |
| justinkim | 3:d247ed0b9bed | 106 | virtual void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); |
| justinkim | 3:d247ed0b9bed | 107 | void setRotation(uint8_t r); |
| SomeRandomBloke | 0:99ee879ef5a9 | 108 | void invertDisplay(boolean i); |
| SomeRandomBloke | 0:99ee879ef5a9 | 109 | uint16_t Color565(uint8_t r, uint8_t g, uint8_t b); |
| justinkim | 4:80075830f886 | 110 | int BMP_16(unsigned int x, unsigned int y, const char *Name_BMP); |
| justinkim | 4:80075830f886 | 111 | int DrawBitmapFile(const char *Name_BMP); |
| justinkim | 4:80075830f886 | 112 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 113 | private: |
| SomeRandomBloke | 0:99ee879ef5a9 | 114 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 115 | void spiwrite(uint8_t), |
| SomeRandomBloke | 0:99ee879ef5a9 | 116 | writecommand(uint8_t c), |
| SomeRandomBloke | 0:99ee879ef5a9 | 117 | writedata(uint8_t d), |
| SomeRandomBloke | 0:99ee879ef5a9 | 118 | commandList(uint8_t *addr), |
| SomeRandomBloke | 0:99ee879ef5a9 | 119 | commonInit(uint8_t *cmdList); |
| justinkim | 4:80075830f886 | 120 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 121 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 122 | uint8_t colstart, rowstart; // some displays need this changed |
| SomeRandomBloke | 0:99ee879ef5a9 | 123 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 124 | SPI lcdPort; // does SPI MOSI, MISO and SCK |
| SomeRandomBloke | 0:99ee879ef5a9 | 125 | DigitalOut _cs; // does SPI CE |
| SomeRandomBloke | 0:99ee879ef5a9 | 126 | DigitalOut _rs; // register/date select |
| SomeRandomBloke | 0:99ee879ef5a9 | 127 | DigitalOut _rst; // does 3310 LCD_RST |
| SomeRandomBloke | 0:99ee879ef5a9 | 128 | }; |
| SomeRandomBloke | 0:99ee879ef5a9 | 129 | |
| SomeRandomBloke | 0:99ee879ef5a9 | 130 | #endif |
