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.
ST7735.h
00001 /*************************************************** 00002 This is a library for the Adafruit 1.8" SPI display. 00003 This library works with the Adafruit 1.8" TFT Breakout w/SD card 00004 ----> http://www.adafruit.com/products/358 00005 as well as Adafruit raw 1.8" TFT display 00006 ----> http://www.adafruit.com/products/618 00007 00008 Check out the links above for our tutorials and wiring diagrams 00009 These displays use SPI to communicate, 4 or 5 pins are required to 00010 interface (RST is optional) 00011 Adafruit invests time and resources providing this open source code, 00012 please support Adafruit and open-source hardware by purchasing 00013 products from Adafruit! 00014 00015 Written by Limor Fried/Ladyada for Adafruit Industries. 00016 MIT license, all text above must be included in any redistribution 00017 ****************************************************/ 00018 00019 #ifndef _ADAFRUIT_ST7735H_ 00020 #define _ADAFRUIT_ST7735H_ 00021 00022 #include "mbed.h" 00023 #include "GFX.h" 00024 00025 #define boolean bool 00026 00027 // some flags for initR() :( 00028 // some flags for initR() :( 00029 #define INITR_GREENTAB 0x0 00030 #define INITR_REDTAB 0x1 00031 #define INITR_BLACKTAB 0x2 00032 00033 #define INITR_18GREENTAB INITR_GREENTAB 00034 #define INITR_18REDTAB INITR_REDTAB 00035 #define INITR_18BLACKTAB INITR_BLACKTAB 00036 #define INITR_144GREENTAB 0x1 00037 #define INITR_MINI160x80 0x4 00038 #define INITR_MINI160x80_RS 0x5 00039 // for 1.44 and mini 00040 #define ST7735_TFTWIDTH_128 128 00041 // for mini 00042 #define ST7735_TFTWIDTH_80 80 00043 // for 1.44" display 00044 #define ST7735_TFTHEIGHT_128 128 00045 // for 1.8" and mini display 00046 #define ST7735_TFTHEIGHT_160 161 00047 00048 #define ST7735_NOP 0x00 00049 #define ST7735_SWRESET 0x01 00050 #define ST7735_RDDID 0x04 00051 #define ST7735_RDDST 0x09 00052 00053 #define ST7735_SLPIN 0x10 00054 #define ST7735_SLPOUT 0x11 00055 #define ST7735_PTLON 0x12 00056 #define ST7735_NORON 0x13 00057 00058 #define ST7735_INVOFF 0x20 00059 #define ST7735_INVON 0x21 00060 #define ST7735_DISPOFF 0x28 00061 #define ST7735_DISPON 0x29 00062 #define ST7735_CASET 0x2A 00063 #define ST7735_RASET 0x2B 00064 #define ST7735_RAMWR 0x2C 00065 #define ST7735_RAMRD 0x2E 00066 00067 #define ST7735_PTLAR 0x30 00068 #define ST7735_VSCRDEF 0x33 00069 #define ST7735_COLMOD 0x3A 00070 #define ST7735_MADCTL 0x36 00071 #define ST7735_VSCRSADD 0x37 00072 #define ST7735_FRMCTR1 0xB1 00073 #define ST7735_FRMCTR2 0xB2 00074 #define ST7735_FRMCTR3 0xB3 00075 #define ST7735_INVCTR 0xB4 00076 #define ST7735_DISSET5 0xB6 00077 00078 #define ST7735_PWCTR1 0xC0 00079 #define ST7735_PWCTR2 0xC1 00080 #define ST7735_PWCTR3 0xC2 00081 #define ST7735_PWCTR4 0xC3 00082 #define ST7735_PWCTR5 0xC4 00083 #define ST7735_VMCTR1 0xC5 00084 00085 #define ST7735_RDID1 0xDA 00086 #define ST7735_RDID2 0xDB 00087 #define ST7735_RDID3 0xDC 00088 #define ST7735_RDID4 0xDD 00089 00090 #define ST7735_PWCTR6 0xFC 00091 00092 #define ST7735_GMCTRP1 0xE0 00093 #define ST7735_GMCTRN1 0xE1 00094 00095 // Color definitions 00096 #define ST7735_BLACK 0x0000 00097 #define ST7735_BLUE 0x001F 00098 #define ST7735_RED 0xF800 00099 #define ST7735_GREEN 0x07E0 00100 #define ST7735_CYAN 0x07FF 00101 #define ST7735_MAGENTA 0xF81F 00102 #define ST7735_YELLOW 0xFFE0 00103 #define ST7735_WHITE 0xFFFF 00104 00105 // scroll definition 00106 #define BOTTOM_TO_TOP 0 00107 #define TOP_TO_BOTTOM 1 00108 00109 00110 00111 typedef struct 00112 { 00113 float xpos, ypos; 00114 short zpos, speed; 00115 unsigned int color; 00116 } STAR; 00117 00118 class ST7735 : public GFX { 00119 00120 public: 00121 00122 ST7735(PinName mosi, PinName miso, PinName sck, PinName CS, PinName RS, PinName RST); 00123 00124 void initB(void); // for ST7735B displays 00125 void initR(uint8_t options = INITR_GREENTAB); // for ST7735R 00126 void setAddrWindow(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1); 00127 void pushColor(uint16_t color); 00128 00129 void fillScreen(uint16_t color); 00130 void drawPixel(int16_t x, int16_t y, uint16_t color); 00131 void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color); 00132 void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color); 00133 void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); 00134 void invertDisplay(boolean i); 00135 void DrawBMP(int offsetx, int offsety, FILE *Image); 00136 void DrawRam(unsigned int x, unsigned int y, unsigned int w, unsigned int h, int *Image); 00137 void DrawGIF(int offsetx, int offsety, FILE *Image); 00138 void DrawANI(int offsetx, int offsety, FILE *Image, int frame); 00139 void DrawStarfield(int centerx, int centery, int acc, int color, int NbrsStars, int duration); 00140 void setRotation(uint8_t r); 00141 void setScrollDefinition(uint8_t top_fix_height, uint8_t bottom_fix_height, int _scroll_direction); 00142 void VerticalScroll(uint8_t _vsp); 00143 void scrollBmp(uint8_t top_fix_height, uint8_t bottom_fix_height, int _scroll_direction, int *bitmap); 00144 00145 uint16_t Color565(uint8_t r, uint8_t g, uint8_t b); 00146 char* Color565string(uint8_t r, uint8_t g, uint8_t b); 00147 00148 void read_area(unsigned int x, unsigned int y, unsigned int w, unsigned int h); 00149 void setAddrWindow2(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1); 00150 00151 private: 00152 uint8_t tabcolor; 00153 void spiwrite(uint8_t), 00154 writecommand(uint8_t c), 00155 writedata(uint8_t d), 00156 commandList(uint8_t *addr), 00157 commonInit(uint8_t *cmdList); 00158 00159 uint8_t colstart, rowstart, xstart, ystart, _tft_type, _orientation; // some displays need this changed 00160 00161 SPI lcdPort; // does SPI MOSI, MISO and SCK 00162 DigitalOut _cs; // does SPI CE 00163 DigitalOut _rs; // register/date select 00164 DigitalOut _rst; // does 3310 LCD_RST 00165 00166 00167 00168 00169 void init_star(STAR* star, int i); 00170 00171 int oct2dec(int n); 00172 int bitExtracted(int number, int k, int p) ; 00173 00174 void makeTable(void); 00175 uint16_t readTable(unsigned int y, unsigned int x); 00176 void addrowTable(uint16_t *row); 00177 void supprTable(void); 00178 00179 }; 00180 00181 00182 #endif
Generated on Tue Jul 12 2022 15:05:43 by
1.7.2