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 HX8347D by
HX8347D.h
00001 /* 00002 00003 reference 00004 https://github.com/yamsam/TFTLCD_ST7781 00005 https://learn.adafruit.com/2-8-tft-touchscreen/downloads 00006 https://github.com/adafruit/TFTLCD-Library 00007 00008 00009 */ 00010 #ifndef MBED_HX8347D_H 00011 #define MBED_HX8347D_H 00012 // register names from Peter Barrett's Microtouch code 00013 #include "mbed.h" 00014 00015 #define HX8347D_COL_AD_START2 0x02 00016 #define HX8347D_COL_AD_START1 0x03 00017 #define HX8347D_COL_AD_END2 0x04 00018 #define HX8347D_COL_AD_END1 0x05 00019 #define HX8347D_ROW_AD_START2 0x06 00020 #define HX8347D_ROW_AD_START1 0x07 00021 #define HX8347D_ROW_AD_END2 0x08 00022 #define HX8347D_ROW_AD_END1 0x09 00023 #define HX8347D_MEM_ACC_CTRL 0x16 00024 #define HX8347D_SRAM_WR_CTRL 0x22 00025 00026 #define swap(a, b) { int16_t t = a; a = b; b = t; } 00027 00028 class HX8347D 00029 { 00030 public: 00031 HX8347D( 00032 PinName rd, PinName wr, PinName rs, PinName cs, PinName rst, 00033 PinName d0, PinName d1, PinName d2, PinName d3, 00034 PinName d4, PinName d5, PinName d6, PinName d7 00035 ); 00036 ~HX8347D(){}; 00037 00038 size_t println(char *c); 00039 00040 uint16_t Color565(uint8_t r, uint8_t g, uint8_t b); 00041 00042 // drawing primitives! 00043 void drawPixel(uint16_t x, uint16_t y, uint16_t color); 00044 void fillScreen(uint16_t color); 00045 void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color); 00046 void drawFastLine(uint16_t x0, uint16_t y0, uint16_t l, uint16_t color, uint8_t flag); 00047 void drawVerticalLine(uint16_t x0, uint16_t y0, uint16_t length, uint16_t color); 00048 void drawHorizontalLine(uint16_t x0, uint16_t y0, uint16_t length, uint16_t color); 00049 void drawTriangle(uint16_t x0, uint16_t y0, 00050 uint16_t x1, uint16_t y1, 00051 uint16_t x2, uint16_t y2, uint16_t color); 00052 void fillTriangle(int32_t x0, int32_t y0, 00053 int32_t x1, int32_t y1, 00054 int32_t x2, int32_t y2, 00055 uint16_t color); 00056 00057 void drawRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color); 00058 00059 void fillRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color); 00060 void drawRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t radius, uint16_t color); 00061 void fillRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t radius, uint16_t color); 00062 void drawCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color); 00063 void fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color); 00064 00065 void setCursor(uint16_t x, uint16_t y); 00066 void setTextColor(uint16_t c); 00067 void setTextSize(uint8_t s); 00068 virtual size_t write(uint8_t); 00069 00070 void drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint8_t s = 1); 00071 void drawString(uint16_t x, uint16_t y, char *c, uint16_t color, uint8_t s = 1); 00072 00073 // commands 00074 void initDisplay(void); 00075 void goHome(void); 00076 void goTo(uint16_t x, uint16_t y); 00077 void reset(void); 00078 void setRotation(uint8_t x); 00079 uint8_t getRotation(); 00080 00081 void BlockWrite(uint16_t Xstart,uint16_t Xend,uint16_t Ystart,uint16_t Yend); 00082 void DispColor(uint16_t color); 00083 00084 // low level 00085 void writeData(uint16_t data) { 00086 _write(1, data); 00087 }; 00088 void writeCommand(uint16_t data) { 00089 _write(0, data); 00090 }; 00091 00092 uint16_t readData(void); 00093 uint16_t readRegister(uint16_t addr); 00094 void writeRegister(uint16_t addr, uint16_t data); 00095 00096 uint16_t width(); 00097 uint16_t height(); 00098 static const uint16_t TFTWIDTH = 240; 00099 static const uint16_t TFTHEIGHT = 320; 00100 00101 void writeData_unsafe(uint16_t d); 00102 00103 void setWriteDir(void); 00104 void setReadDir(void); 00105 00106 void write8(uint8_t d); 00107 00108 void calcGRAMPosition(uint16_t *posx, uint16_t *posy); 00109 void getViewport(uint16_t *bx, uint16_t *by, uint16_t *ex, uint16_t *ey); 00110 void setViewport(uint16_t bx, uint16_t by, uint16_t ex, uint16_t ey); 00111 void setDefaultViewport(); 00112 00113 private: 00114 void drawCircleHelper(uint16_t x0, uint16_t y0, uint16_t r, uint8_t corner, uint16_t color); 00115 void fillCircleHelper(uint16_t x0, uint16_t y0, uint16_t r, uint8_t corner, uint16_t delta, uint16_t color); 00116 uint8_t read8(void); 00117 00118 DigitalOut _rd, _wr, _rs, _cs, _rst; 00119 BusInOut _d; 00120 00121 void _write(uint16_t rs, uint16_t d); 00122 uint16_t _width, _height; 00123 uint8_t textsize; 00124 uint16_t cursor_x, cursor_y; 00125 uint16_t textcolor; 00126 uint8_t rotation; 00127 void _delay(uint16_t t); 00128 00129 }; 00130 #endif
Generated on Sun Jul 17 2022 01:39:06 by
1.7.2
