HX8347D LCD

Fork of HX8347D by k og

Committer:
og
Date:
Fri Sep 02 00:45:38 2016 +0000
Revision:
3:233295bc63af
Parent:
2:11512f68bcc8
??????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
og 1:8dfbf62450e6 1 /*
og 1:8dfbf62450e6 2
og 1:8dfbf62450e6 3 reference
og 1:8dfbf62450e6 4 https://github.com/yamsam/TFTLCD_ST7781
og 1:8dfbf62450e6 5 https://learn.adafruit.com/2-8-tft-touchscreen/downloads
og 1:8dfbf62450e6 6 https://github.com/adafruit/TFTLCD-Library
og 1:8dfbf62450e6 7
og 1:8dfbf62450e6 8
og 1:8dfbf62450e6 9 */
og 0:d82fa4a20501 10 #ifndef MBED_HX8347D_H
og 0:d82fa4a20501 11 #define MBED_HX8347D_H
og 0:d82fa4a20501 12 // register names from Peter Barrett's Microtouch code
og 0:d82fa4a20501 13 #include "mbed.h"
og 1:8dfbf62450e6 14
og 1:8dfbf62450e6 15 #define HX8347D_COL_AD_START2 0x02
og 1:8dfbf62450e6 16 #define HX8347D_COL_AD_START1 0x03
og 1:8dfbf62450e6 17 #define HX8347D_COL_AD_END2 0x04
og 1:8dfbf62450e6 18 #define HX8347D_COL_AD_END1 0x05
og 1:8dfbf62450e6 19 #define HX8347D_ROW_AD_START2 0x06
og 1:8dfbf62450e6 20 #define HX8347D_ROW_AD_START1 0x07
og 1:8dfbf62450e6 21 #define HX8347D_ROW_AD_END2 0x08
og 1:8dfbf62450e6 22 #define HX8347D_ROW_AD_END1 0x09
og 1:8dfbf62450e6 23 #define HX8347D_MEM_ACC_CTRL 0x16
og 1:8dfbf62450e6 24 #define HX8347D_SRAM_WR_CTRL 0x22
og 1:8dfbf62450e6 25
og 1:8dfbf62450e6 26 #define swap(a, b) { int16_t t = a; a = b; b = t; }
og 2:11512f68bcc8 27
og 0:d82fa4a20501 28 class HX8347D
og 0:d82fa4a20501 29 {
og 0:d82fa4a20501 30 public:
og 0:d82fa4a20501 31 HX8347D(
og 0:d82fa4a20501 32 PinName rd, PinName wr, PinName rs, PinName cs, PinName rst,
og 0:d82fa4a20501 33 PinName d0, PinName d1, PinName d2, PinName d3,
og 0:d82fa4a20501 34 PinName d4, PinName d5, PinName d6, PinName d7
og 0:d82fa4a20501 35 );
og 0:d82fa4a20501 36 ~HX8347D(){};
og 1:8dfbf62450e6 37
og 1:8dfbf62450e6 38 size_t println(char *c);
og 1:8dfbf62450e6 39
og 1:8dfbf62450e6 40 uint16_t Color565(uint8_t r, uint8_t g, uint8_t b);
og 1:8dfbf62450e6 41
og 1:8dfbf62450e6 42 // drawing primitives!
og 1:8dfbf62450e6 43 void drawPixel(uint16_t x, uint16_t y, uint16_t color);
og 1:8dfbf62450e6 44 void fillScreen(uint16_t color);
og 1:8dfbf62450e6 45 void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color);
og 1:8dfbf62450e6 46 void drawFastLine(uint16_t x0, uint16_t y0, uint16_t l, uint16_t color, uint8_t flag);
og 1:8dfbf62450e6 47 void drawVerticalLine(uint16_t x0, uint16_t y0, uint16_t length, uint16_t color);
og 1:8dfbf62450e6 48 void drawHorizontalLine(uint16_t x0, uint16_t y0, uint16_t length, uint16_t color);
og 1:8dfbf62450e6 49 void drawTriangle(uint16_t x0, uint16_t y0,
og 1:8dfbf62450e6 50 uint16_t x1, uint16_t y1,
og 1:8dfbf62450e6 51 uint16_t x2, uint16_t y2, uint16_t color);
og 1:8dfbf62450e6 52 void fillTriangle(int32_t x0, int32_t y0,
og 1:8dfbf62450e6 53 int32_t x1, int32_t y1,
og 1:8dfbf62450e6 54 int32_t x2, int32_t y2,
og 1:8dfbf62450e6 55 uint16_t color);
og 1:8dfbf62450e6 56
og 1:8dfbf62450e6 57 void drawRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color);
og 1:8dfbf62450e6 58
og 1:8dfbf62450e6 59 void fillRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color);
og 1:8dfbf62450e6 60 void drawRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t radius, uint16_t color);
og 1:8dfbf62450e6 61 void fillRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t radius, uint16_t color);
og 1:8dfbf62450e6 62 void drawCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color);
og 1:8dfbf62450e6 63 void fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color);
og 1:8dfbf62450e6 64
og 1:8dfbf62450e6 65 void setCursor(uint16_t x, uint16_t y);
og 1:8dfbf62450e6 66 void setTextColor(uint16_t c);
og 1:8dfbf62450e6 67 void setTextSize(uint8_t s);
og 1:8dfbf62450e6 68 virtual size_t write(uint8_t);
og 1:8dfbf62450e6 69
og 1:8dfbf62450e6 70 void drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint8_t s = 1);
og 1:8dfbf62450e6 71 void drawString(uint16_t x, uint16_t y, char *c, uint16_t color, uint8_t s = 1);
og 1:8dfbf62450e6 72
og 1:8dfbf62450e6 73 // commands
og 1:8dfbf62450e6 74 void initDisplay(void);
og 1:8dfbf62450e6 75 void goHome(void);
og 1:8dfbf62450e6 76 void goTo(uint16_t x, uint16_t y);
og 1:8dfbf62450e6 77 void reset(void);
og 1:8dfbf62450e6 78 void setRotation(uint8_t x);
og 1:8dfbf62450e6 79 uint8_t getRotation();
og 0:d82fa4a20501 80
og 1:8dfbf62450e6 81 void BlockWrite(uint16_t Xstart,uint16_t Xend,uint16_t Ystart,uint16_t Yend);
og 1:8dfbf62450e6 82 void DispColor(uint16_t color);
og 0:d82fa4a20501 83
og 1:8dfbf62450e6 84 // low level
og 1:8dfbf62450e6 85 void writeData(uint16_t data) {
og 1:8dfbf62450e6 86 _write(1, data);
og 1:8dfbf62450e6 87 };
og 1:8dfbf62450e6 88 void writeCommand(uint16_t data) {
og 1:8dfbf62450e6 89 _write(0, data);
og 1:8dfbf62450e6 90 };
og 1:8dfbf62450e6 91
og 1:8dfbf62450e6 92 uint16_t readData(void);
og 1:8dfbf62450e6 93 uint16_t readRegister(uint16_t addr);
og 1:8dfbf62450e6 94 void writeRegister(uint16_t addr, uint16_t data);
og 1:8dfbf62450e6 95
og 1:8dfbf62450e6 96 uint16_t width();
og 1:8dfbf62450e6 97 uint16_t height();
og 1:8dfbf62450e6 98 static const uint16_t TFTWIDTH = 240;
og 1:8dfbf62450e6 99 static const uint16_t TFTHEIGHT = 320;
og 1:8dfbf62450e6 100
og 1:8dfbf62450e6 101 void writeData_unsafe(uint16_t d);
og 1:8dfbf62450e6 102
og 1:8dfbf62450e6 103 void setWriteDir(void);
og 1:8dfbf62450e6 104 void setReadDir(void);
og 1:8dfbf62450e6 105
og 1:8dfbf62450e6 106 void write8(uint8_t d);
og 1:8dfbf62450e6 107
og 1:8dfbf62450e6 108 void calcGRAMPosition(uint16_t *posx, uint16_t *posy);
og 1:8dfbf62450e6 109 void getViewport(uint16_t *bx, uint16_t *by, uint16_t *ex, uint16_t *ey);
og 1:8dfbf62450e6 110 void setViewport(uint16_t bx, uint16_t by, uint16_t ex, uint16_t ey);
og 1:8dfbf62450e6 111 void setDefaultViewport();
og 1:8dfbf62450e6 112
og 0:d82fa4a20501 113 private:
og 1:8dfbf62450e6 114 void drawCircleHelper(uint16_t x0, uint16_t y0, uint16_t r, uint8_t corner, uint16_t color);
og 1:8dfbf62450e6 115 void fillCircleHelper(uint16_t x0, uint16_t y0, uint16_t r, uint8_t corner, uint16_t delta, uint16_t color);
og 1:8dfbf62450e6 116 uint8_t read8(void);
og 1:8dfbf62450e6 117
og 1:8dfbf62450e6 118 DigitalOut _rd, _wr, _rs, _cs, _rst;
og 0:d82fa4a20501 119 BusInOut _d;
og 1:8dfbf62450e6 120
og 1:8dfbf62450e6 121 void _write(uint16_t rs, uint16_t d);
og 1:8dfbf62450e6 122 uint16_t _width, _height;
og 1:8dfbf62450e6 123 uint8_t textsize;
og 1:8dfbf62450e6 124 uint16_t cursor_x, cursor_y;
og 1:8dfbf62450e6 125 uint16_t textcolor;
og 1:8dfbf62450e6 126 uint8_t rotation;
og 3:233295bc63af 127 void _delay(uint16_t t);
og 1:8dfbf62450e6 128
og 1:8dfbf62450e6 129 };
og 1:8dfbf62450e6 130 #endif