18 #define INITR_GREENTAB 0x0 19 #define INITR_REDTAB 0x1 20 #define INITR_BLACKTAB 0x2 21 #define INITR_GREENTAB2 0x3 // Use if you get random pixels on two edges of green tab display 41 #include <Fonts/Font16.h> 45 #include <Fonts/Font32rle.h> 50 #include <Fonts/Font64rle.h> 57 #include <Fonts/Font7srle.h> 64 #include <Fonts/Font72rle.h> 73 #include <avr/pgmspace.h> 76 template <
typename T>
static inline void 77 tftswap(T& a, T& b) { T t = a; a = b; b = t; }
80 #define TFT_CS_L FastPin<TFT_CS>::lo() 81 #define TFT_DC_C FastPin<TFT_DC>::lo() 82 #define TFT_CS_H FastPin<TFT_CS>::hi() 83 #define TFT_DC_D FastPin<TFT_DC>::hi() 86 #define TL_DATUM 0 // Top left (default) 87 #define TC_DATUM 1 // Top centre 88 #define TR_DATUM 2 // Top right 89 #define ML_DATUM 3 // Middle left 90 #define CL_DATUM 3 // Centre left, same as above 91 #define MC_DATUM 4 // Middle centre 92 #define CC_DATUM 4 // Centre centre, same as above 93 #define MR_DATUM 5 // Middle right 94 #define CR_DATUM 5 // Centre right, same as above 95 #define BL_DATUM 6 // Bottom left 96 #define BC_DATUM 7 // Bottom centre 97 #define BR_DATUM 8 // Bottom right 102 #define ST7735_TFTWIDTH 128 103 #define ST7735_TFTHEIGHT 160 105 #define ST7735_INIT_DELAY 0x80 110 #define ST7735_TFTWIDTH 128 111 #define ST7735_TFTHEIGHT 160 113 #define ST7735_NOP 0x00 114 #define ST7735_SWRESET 0x01 115 #define ST7735_RDDID 0x04 116 #define ST7735_RDDST 0x09 118 #define ST7735_SLPIN 0x10 119 #define ST7735_SLPOUT 0x11 120 #define ST7735_PTLON 0x12 121 #define ST7735_NORON 0x13 123 #define ST7735_INVOFF 0x20 124 #define ST7735_INVON 0x21 125 #define ST7735_DISPOFF 0x28 126 #define ST7735_DISPON 0x29 127 #define ST7735_CASET 0x2A 128 #define ST7735_RASET 0x2B 129 #define ST7735_RAMWR 0x2C 130 #define ST7735_RAMRD 0x2E 132 #define ST7735_PTLAR 0x30 133 #define ST7735_COLMOD 0x3A 134 #define ST7735_MADCTL 0x36 136 #define ST7735_FRMCTR1 0xB1 137 #define ST7735_FRMCTR2 0xB2 138 #define ST7735_FRMCTR3 0xB3 139 #define ST7735_INVCTR 0xB4 140 #define ST7735_DISSET5 0xB6 142 #define ST7735_PWCTR1 0xC0 143 #define ST7735_PWCTR2 0xC1 144 #define ST7735_PWCTR3 0xC2 145 #define ST7735_PWCTR4 0xC3 146 #define ST7735_PWCTR5 0xC4 147 #define ST7735_VMCTR1 0xC5 149 #define ST7735_RDID1 0xDA 150 #define ST7735_RDID2 0xDB 151 #define ST7735_RDID3 0xDC 152 #define ST7735_RDID4 0xDD 154 #define ST7735_PWCTR6 0xFC 156 #define ST7735_GMCTRP1 0xE0 157 #define ST7735_GMCTRN1 0xE1 160 #define MADCTL_MY 0x80 161 #define MADCTL_MX 0x40 162 #define MADCTL_MV 0x20 163 #define MADCTL_ML 0x10 164 #define MADCTL_RGB 0x00 165 #define MADCTL_BGR 0x08 166 #define MADCTL_MH 0x04 169 #define TFT_BLACK 0x0000 170 #define TFT_NAVY 0x000F 171 #define TFT_DARKGREEN 0x03E0 172 #define TFT_DARKCYAN 0x03EF 173 #define TFT_MAROON 0x7800 174 #define TFT_PURPLE 0x780F 175 #define TFT_OLIVE 0x7BE0 176 #define TFT_LIGHTGREY 0xC618 177 #define TFT_DARKGREY 0x7BEF 178 #define TFT_BLUE 0x001F 179 #define TFT_GREEN 0x07E0 180 #define TFT_CYAN 0x07FF 181 #define TFT_RED 0xF800 182 #define TFT_MAGENTA 0xF81F 183 #define TFT_YELLOW 0xFFE0 184 #define TFT_WHITE 0xFFFF 185 #define TFT_ORANGE 0xFD20 186 #define TFT_GREENYELLOW 0xAFE5 187 #define TFT_PINK 0xF81F 190 #define ST7735_BLACK 0x0000 191 #define ST7735_NAVY 0x000F 192 #define ST7735_DARKGREEN 0x03E0 193 #define ST7735_DARKCYAN 0x03EF 194 #define ST7735_MAROON 0x7800 195 #define ST7735_PURPLE 0x780F 196 #define ST7735_OLIVE 0x7BE0 197 #define ST7735_LIGHTGREY 0xC618 198 #define ST7735_DARKGREY 0x7BEF 199 #define ST7735_BLUE 0x001F 200 #define ST7735_GREEN 0x07E0 201 #define ST7735_CYAN 0x07FF 202 #define ST7735_RED 0xF800 203 #define ST7735_MAGENTA 0xF81F 204 #define ST7735_YELLOW 0xFFE0 205 #define ST7735_WHITE 0xFFFF 206 #define ST7735_ORANGE 0xFD20 207 #define ST7735_GREENYELLOW 0xAFE5 208 #define ST7735_PINK 0xF81F 225 { (
const unsigned char *)chrtbl_f16, widtbl_f16, chr_hgt_f16},
233 { (
const unsigned char *)chrtbl_f32, widtbl_f32, chr_hgt_f32},
241 { (
const unsigned char *)chrtbl_f64, widtbl_f64, chr_hgt_f64},
247 { (
const unsigned char *)chrtbl_f7s, widtbl_f7s, chr_hgt_f7s},
253 { (
const unsigned char *)chrtbl_f72, widtbl_f72, chr_hgt_f72}
269 drawPixel(uint16_t x, uint16_t y, uint16_t color),
271 drawChar(int16_t x, int16_t y,
unsigned char c, uint16_t color, uint16_t bg, uint8_t font),
272 setAddrWindow(int16_t x0, int16_t y0, int16_t x1, int16_t y1),
286 drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color),
287 drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color),
288 drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color),
290 drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color),
291 fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color),
292 drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color),
293 fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color),
298 drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color),
299 drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, uint16_t color),
300 fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color),
301 fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, int16_t delta, uint16_t color),
303 drawEllipse(int16_t x0, int16_t y0, int16_t rx, int16_t ry, uint16_t color),
304 fillEllipse(int16_t x0, int16_t y0, int16_t rx, int16_t ry, uint16_t color),
306 drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color),
307 fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color),
309 drawBitmap(int16_t x, int16_t y,
const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color),
312 setCursor(int16_t x, int16_t y, uint8_t font),
329 color565(uint8_t r, uint8_t g, uint8_t b);
331 int16_t
drawChar(
unsigned int uniCode,
int x,
int y,
int font),
332 drawNumber(
long long_num,
int poX,
int poY,
int font),
333 drawFloat(
float floatNumber,
int decimal,
int poX,
int poY,
int font),
335 drawString(
char *
string,
int poX,
int poY,
int font),
344 virtual size_t write(uint8_t);
348 void setWindow(int16_t x0, int16_t y0, int16_t x1, int16_t y1);
355 uint8_t mySPCR, savedSPCR;
357 int8_t _cs, _dc, _rst, _mosi, _miso, _sclk;
void setTextDatum(uint8_t datum)
int16_t textWidth(char *string, int font)
int16_t drawString(char *string, int poX, int poY, int font)
const unsigned char * chartbl
void setTextSize(uint8_t size)
void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color)
void setRotation(uint8_t r)
int16_t drawRightString(char *string, int dX, int poY, int font)
uint16_t color565(uint8_t r, uint8_t g, uint8_t b)
void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t font)
void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
void fillEllipse(int16_t x0, int16_t y0, int16_t rx, int16_t ry, uint16_t color)
int16_t drawCentreString(char *string, int dX, int poY, int font)
const PROGMEM fontinfo fontdata[]
void drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color)
void writedata(uint8_t d)
void setCursor(int16_t x, int16_t y)
void drawEllipse(int16_t x0, int16_t y0, int16_t rx, int16_t ry, uint16_t color)
virtual size_t write(uint8_t)
void pushColors(uint16_t *data, uint8_t len)
const unsigned char * widthtbl
void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color)
int16_t drawFloat(float floatNumber, int decimal, int poX, int poY, int font)
uint8_t getRotation(void)
void fillScreen(uint16_t color)
void pushColor(uint16_t color)
void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, int16_t delta, uint16_t color)
void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)
int16_t fontHeight(int font)
void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)
void setTextColor(uint16_t color)
void setTextPadding(uint16_t x_width)
TFT_ST7735(int16_t _W=ST7735_TFTWIDTH, int16_t _H=ST7735_TFTHEIGHT)
void commandList(const uint8_t *addr)
void writecommand(uint8_t c)
void invertDisplay(boolean i)
void setTextFont(uint8_t font)
void setTextWrap(boolean wrap)
void setAddrWindow(int16_t x0, int16_t y0, int16_t x1, int16_t y1)
void drawPixel(uint16_t x, uint16_t y, uint16_t color)
void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, uint16_t color)
uint16_t fontsLoaded(void)
int16_t drawNumber(long long_num, int poX, int poY, int font)
void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)
void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
void drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)