TFT drivers update
This commit is contained in:
parent
4147eba7fd
commit
01e1cd8ada
|
|
@ -1,81 +1,71 @@
|
||||||
// Change the width and height if required (defined in portrait mode)
|
// Change the width and height if required (defined in portrait mode)
|
||||||
// or use the constructor to over-ride defaults
|
// or use the constructor to over-ride defaults
|
||||||
#define TFT_WIDTH 800
|
#define TFT_WIDTH 480
|
||||||
#define TFT_HEIGHT 480
|
#define TFT_HEIGHT 800
|
||||||
|
|
||||||
// Delay between some initialisation commands
|
// Delay between some initialisation commands
|
||||||
#define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked
|
#define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked
|
||||||
|
|
||||||
// Generic commands used by TFT_eSPI.cpp
|
// Generic commands used by TFT_eSPI.cpp
|
||||||
#define TFT_NOP 0x00
|
#define TFT_NOP 0x0000
|
||||||
#define TFT_SWRST 0x01
|
#define TFT_SWRST 0x0100
|
||||||
|
|
||||||
#define TFT_SLPIN 0x10
|
#define TFT_SLPIN 0x1000
|
||||||
#define TFT_SLPOUT 0x11
|
#define TFT_SLPOUT 0x1100
|
||||||
|
|
||||||
#define TFT_INVOFF 0x20
|
#define TFT_INVOFF 0x2000
|
||||||
#define TFT_INVON 0x21
|
#define TFT_INVON 0x2100
|
||||||
|
|
||||||
#define TFT_DISPOFF 0x28
|
#define TFT_DISPOFF 0x2800
|
||||||
#define TFT_DISPON 0x29
|
#define TFT_DISPON 0x2900
|
||||||
|
|
||||||
#define TFT_CASET 0x2A
|
#define TFT_CASET 0x2A00
|
||||||
#define TFT_PASET 0x2B
|
#define TFT_PASET 0x2B00
|
||||||
#define TFT_RAMWR 0x2C
|
|
||||||
|
|
||||||
#define TFT_RAMRD 0x2E
|
#define TFT_RAMWR 0x2C00
|
||||||
|
#define TFT_RAMRD 0x2E00
|
||||||
|
|
||||||
#define TFT_MADCTL 0x36
|
#define TFT_MADCTL 0x3600
|
||||||
|
|
||||||
#define TFT_MAD_MY 0x80
|
#define TFT_MAD_MY 0x80 /* Row Address Order */
|
||||||
#define TFT_MAD_MX 0x40
|
#define TFT_MAD_MX 0x40 /* Column Address Order */
|
||||||
#define TFT_MAD_MV 0x20
|
#define TFT_MAD_MV 0x20 /* Row / Column Exchange */
|
||||||
#define TFT_MAD_ML 0x10
|
#define TFT_MAD_ML 0x10 /* Vertical Refresh Order - Bottom to Top */
|
||||||
#define TFT_MAD_RGB 0x00
|
|
||||||
#define TFT_MAD_BGR 0x08
|
|
||||||
//#define TFT_MAD_MH 0x04
|
|
||||||
//#define TFT_MAD_SS 0x02
|
|
||||||
//#define TFT_MAD_GS 0x01
|
|
||||||
|
|
||||||
/* Manufacturer Command Set */
|
#define TFT_MAD_RGB 0x00 /* RGB color filter panel */
|
||||||
#define MCS_ADRSFT 0x0000 /* Address Shift Function */
|
#define TFT_MAD_BGR 0x08 /* BGR color filter panel */
|
||||||
#define MCS_PANSET 0xB3A6 /* Panel Type Setting */
|
|
||||||
#define MCS_SD_CTRL 0xC0A2 /* Source Driver Timing Setting */
|
#define Byte8H(ByteH) ((uint8_t)(((uint16_t)(ByteH)&0xFF00)>>8))
|
||||||
#define MCS_P_DRV_M 0xC0B4 /* Panel Driving Mode */
|
#define Byte8L(ByteL) ((uint8_t)( (uint16_t)(ByteL)&0x00FF))
|
||||||
#define MCS_OSC_ADJ 0xC181 /* Oscillator Adjustment for Idle/Normal mode */
|
|
||||||
#define MCS_RGB_VID_SET 0xC1A1 /* RGB Video Mode Setting */
|
#define TFT_CASET_CMD(x0, x1) \
|
||||||
#define MCS_SD_PCH_CTRL 0xC480 /* Source Driver Precharge Control */
|
DC_C; tft_Write_16(TFT_CASET); \
|
||||||
#define MCS_NO_DOC1 0xC48A /* Command not documented */
|
DC_D; tft_Write_16(Byte8H(x0)); \
|
||||||
#define MCS_PWR_CTRL1 0xC580 /* Power Control Setting 1 */
|
DC_C; tft_Write_16(TFT_CASET + 1); \
|
||||||
#define MCS_PWR_CTRL2 0xC590 /* Power Control Setting 2 for Normal Mode */
|
DC_D; tft_Write_16(Byte8L(x0)); \
|
||||||
#define MCS_PWR_CTRL4 0xC5B0 /* Power Control Setting 4 for DC Voltage */
|
DC_C; tft_Write_16(TFT_CASET + 2); \
|
||||||
#define MCS_PANCTRLSET1 0xCB80 /* Panel Control Setting 1 */
|
DC_D; tft_Write_16(Byte8H(x1)); \
|
||||||
#define MCS_PANCTRLSET2 0xCB90 /* Panel Control Setting 2 */
|
DC_C; tft_Write_16(TFT_CASET + 3); \
|
||||||
#define MCS_PANCTRLSET3 0xCBA0 /* Panel Control Setting 3 */
|
DC_D; tft_Write_16(Byte8L(x1))
|
||||||
#define MCS_PANCTRLSET4 0xCBB0 /* Panel Control Setting 4 */
|
|
||||||
#define MCS_PANCTRLSET5 0xCBC0 /* Panel Control Setting 5 */
|
#define TFT_PASET_CMD(y0, y1) \
|
||||||
#define MCS_PANCTRLSET6 0xCBD0 /* Panel Control Setting 6 */
|
DC_C; tft_Write_16(TFT_PASET); \
|
||||||
#define MCS_PANCTRLSET7 0xCBE0 /* Panel Control Setting 7 */
|
DC_D; tft_Write_16(Byte8H(y0)); \
|
||||||
#define MCS_PANCTRLSET8 0xCBF0 /* Panel Control Setting 8 */
|
DC_C; tft_Write_16(TFT_PASET + 1); \
|
||||||
#define MCS_PANU2D1 0xCC80 /* Panel U2D Setting 1 */
|
DC_D; tft_Write_16(Byte8L(y0)); \
|
||||||
#define MCS_PANU2D2 0xCC90 /* Panel U2D Setting 2 */
|
DC_C; tft_Write_16(TFT_PASET + 2); \
|
||||||
#define MCS_PANU2D3 0xCCA0 /* Panel U2D Setting 3 */
|
DC_D; tft_Write_16(Byte8H(y1)); \
|
||||||
#define MCS_PAND2U1 0xCCB0 /* Panel D2U Setting 1 */
|
DC_C; tft_Write_16(TFT_PASET + 3); \
|
||||||
#define MCS_PAND2U2 0xCCC0 /* Panel D2U Setting 2 */
|
DC_D; tft_Write_16(Byte8L(y1))
|
||||||
#define MCS_PAND2U3 0xCCD0 /* Panel D2U Setting 3 */
|
|
||||||
#define MCS_GOAVST 0xCE80 /* GOA VST Setting */
|
#define TFT_RAMWR_CMD \
|
||||||
#define MCS_GOACLKA1 0xCEA0 /* GOA CLKA1 Setting */
|
DC_C; tft_Write_16(TFT_RAMWR)
|
||||||
#define MCS_GOACLKA2 0xCEA7 /* GOA CLKA2 Setting */
|
|
||||||
#define MCS_GOACLKA3 0xCEB0 /* GOA CLKA3 Setting */
|
#define TFT_RAMRD_CMD \
|
||||||
#define MCS_GOACLKA4 0xCEB7 /* GOA CLKA4 Setting */
|
DC_C; tft_Write_16(TFT_RAMRD)
|
||||||
#define MCS_GOAECLK 0xCFC0 /* GOA ECLK Setting */
|
|
||||||
#define MCS_GOAOPT1 0xCFC6 /* GOA Other Options 1 */
|
#define writecommand16(cmd) \
|
||||||
#define MCS_GOATGOPT 0xCFC7 /* GOA Signal Toggle Option Setting */
|
writecommand(Byte8H(cmd)); writecommand(Byte8L(cmd))
|
||||||
#define MCS_NO_DOC2 0xCFD0 /* Command not documented */
|
|
||||||
#define MCS_GVDDSET 0xD800 /* GVDD/NGVDD */
|
#define writedata16(data) \
|
||||||
#define MCS_VCOMDC 0xD900 /* VCOM Voltage Setting */
|
writedata(Byte8H(data)); writedata(Byte8L(data))
|
||||||
#define MCS_GMCT2_2P 0xE100 /* Gamma Correction 2.2+ Setting */
|
|
||||||
#define MCS_GMCT2_2N 0xE200 /* Gamma Correction 2.2- Setting */
|
|
||||||
#define MCS_NO_DOC3 0xF5B6 /* Command not documented */
|
|
||||||
#define MCS_CMD2_ENA1 0xFF00 /* Enable Access Command2 "CMD2" */
|
|
||||||
#define MCS_CMD2_ENA2 0xFF80 /* Enable Access Orise Command2 */
|
|
||||||
|
|
@ -1,27 +1,502 @@
|
||||||
|
|
||||||
// This is the command sequence that initialises the NT35510 driver
|
// This is the command sequence that initialises the NT35510 driver
|
||||||
// Configure NT35510 display
|
|
||||||
|
|
||||||
#define Byte8H(ByteH) ((uint8_t)(((uint16_t)(ByteH)&0xFF00)>>8))
|
//************* NT35510初始化**********//
|
||||||
#define Byte8L(ByteL) ((uint8_t)( (uint16_t)(ByteL)&0x00FF))
|
/* MAUCCTR: Manufacture Command Set enable */
|
||||||
|
//#Enable Page1
|
||||||
|
writecommand16(0xF000); writedata16(0x55);
|
||||||
|
writecommand16(0xF001); writedata16(0xAA);
|
||||||
|
writecommand16(0xF002); writedata16(0x52);
|
||||||
|
writecommand16(0xF003); writedata16(0x08);
|
||||||
|
writecommand16(0xF004); writedata16(0x01);
|
||||||
|
|
||||||
|
/* BT1CTR: BT1 Power Control for AVDD */
|
||||||
|
//# AVDD: manual);
|
||||||
|
writecommand16(0xB600); writedata16(0x34);
|
||||||
|
writecommand16(0xB601); writedata16(0x34);
|
||||||
|
writecommand16(0xB602); writedata16(0x34);
|
||||||
|
|
||||||
#ifndef TFT_CASET_CMD
|
/* SETAVDD: Setting AVDD Voltage */
|
||||||
#define TFT_CASET_CMD(x0, x1) \
|
writecommand16(0xB000); writedata16(0x0D);//09
|
||||||
DC_C; tft_Write_8(TFT_CASET); \
|
writecommand16(0xB001); writedata16(0x0D);
|
||||||
DC_D; tft_Write_32C(x0, x1)
|
writecommand16(0xB002); writedata16(0x0D);
|
||||||
#endif
|
|
||||||
|
/* BT2CTR: BT2 Power Control for AVEE */
|
||||||
|
//# AVEE: manual); -6V
|
||||||
|
writecommand16(0xB700); writedata16(0x24);
|
||||||
|
writecommand16(0xB701); writedata16(0x24);
|
||||||
|
writecommand16(0xB702); writedata16(0x24);
|
||||||
|
|
||||||
#ifndef TFT_PASET_CMD
|
/* SETAVEE: Setting AVEE Voltage */
|
||||||
#define TFT_PASET_CMD(y0, y1) \
|
writecommand16(0xB100); writedata16(0x0D);
|
||||||
DC_C; tft_Write_8(TFT_PASET); \
|
writecommand16(0xB101); writedata16(0x0D);
|
||||||
DC_D; tft_Write_32C(y0, y1)
|
writecommand16(0xB102); writedata16(0x0D);
|
||||||
#endif
|
|
||||||
|
/* BT3CTR: BT3 Power Control for VCL */
|
||||||
|
writecommand16(0xB800); writedata16(0x24);
|
||||||
|
writecommand16(0xB801); writedata16(0x24);
|
||||||
|
writecommand16(0xB802); writedata16(0x24);
|
||||||
|
|
||||||
#define writecommand16(cmd) \
|
/* SETVCL: Setting VCL Voltage */
|
||||||
writecommand(Byte8H(cmd)); writecommand(Byte8L(cmd))
|
writecommand16(0xB200); writedata16(0x00);
|
||||||
|
|
||||||
#define writedata16(data) \
|
/* BT4CTR: BT4 Power Control for VGH */
|
||||||
writedata(Byte8H(data)); writedata(Byte8L(data))
|
//# VGH: Clamp Enable);
|
||||||
|
writecommand16(0xB900); writedata16(0x24);
|
||||||
|
writecommand16(0xB901); writedata16(0x24);
|
||||||
|
writecommand16(0xB902); writedata16(0x24);
|
||||||
|
|
||||||
|
/* SETVGH: Setting VGH Voltage */
|
||||||
|
writecommand16(0xB300); writedata16(0x05);
|
||||||
|
writecommand16(0xB301); writedata16(0x05);
|
||||||
|
writecommand16(0xB302); writedata16(0x05);
|
||||||
|
|
||||||
|
/* VGHCTR: VGH Output Voltage - commented out */
|
||||||
|
///writecommand16(0xBF00); writedata16(0x01);
|
||||||
|
|
||||||
|
/* BT5CTR: BT5 Power Control for VGLX */
|
||||||
|
//# VGL(LVGL):
|
||||||
|
writecommand16(0xBA00); writedata16(0x34);
|
||||||
|
writecommand16(0xBA01); writedata16(0x34);
|
||||||
|
writecommand16(0xBA02); writedata16(0x34);
|
||||||
|
|
||||||
|
/* SETVGL_REG: Setting VGL_REG Voltage */
|
||||||
|
//# VGL_REG(VGLO)
|
||||||
|
writecommand16(0xB500); writedata16(0x0B);
|
||||||
|
writecommand16(0xB501); writedata16(0x0B);
|
||||||
|
writecommand16(0xB502); writedata16(0x0B);
|
||||||
|
|
||||||
|
/* SETVGP: Setting VGMP and VGSP Voltage */
|
||||||
|
//# VGMP/VGSP:
|
||||||
|
writecommand16(0xBC00); writedata16(0X00);
|
||||||
|
writecommand16(0xBC01); writedata16(0xA3);
|
||||||
|
writecommand16(0xBC02); writedata16(0X00);
|
||||||
|
|
||||||
|
/* SETVGN: Setting VGMN and VGSN Voltage */
|
||||||
|
//# VGMN/VGSN
|
||||||
|
writecommand16(0xBD00); writedata16(0x00);
|
||||||
|
writecommand16(0xBD01); writedata16(0xA3);
|
||||||
|
writecommand16(0xBD02); writedata16(0x00);
|
||||||
|
|
||||||
|
/* SETVCMOFF: Setting VCOM Offset Voltage */
|
||||||
|
//# VCOM=-0.1
|
||||||
|
writecommand16(0xBE00); writedata16(0x00);
|
||||||
|
writecommand16(0xBE01); writedata16(0x63);//4f
|
||||||
|
// VCOMH+0x01;
|
||||||
|
|
||||||
|
/* GMRCTR1: Setting Gamma 2.2 Correction for Red (Positive) */
|
||||||
|
//#R+
|
||||||
|
writecommand16(0xD100); writedata16(0x00);
|
||||||
|
writecommand16(0xD101); writedata16(0x37);
|
||||||
|
writecommand16(0xD102); writedata16(0x00);
|
||||||
|
writecommand16(0xD103); writedata16(0x52);
|
||||||
|
writecommand16(0xD104); writedata16(0x00);
|
||||||
|
writecommand16(0xD105); writedata16(0x7B);
|
||||||
|
writecommand16(0xD106); writedata16(0x00);
|
||||||
|
writecommand16(0xD107); writedata16(0x99);
|
||||||
|
writecommand16(0xD108); writedata16(0x00);
|
||||||
|
writecommand16(0xD109); writedata16(0xB1);
|
||||||
|
writecommand16(0xD10A); writedata16(0x00);
|
||||||
|
writecommand16(0xD10B); writedata16(0xD2);
|
||||||
|
writecommand16(0xD10C); writedata16(0x00);
|
||||||
|
writecommand16(0xD10D); writedata16(0xF6);
|
||||||
|
writecommand16(0xD10E); writedata16(0x01);
|
||||||
|
writecommand16(0xD10F); writedata16(0x27);
|
||||||
|
writecommand16(0xD110); writedata16(0x01);
|
||||||
|
writecommand16(0xD111); writedata16(0x4E);
|
||||||
|
writecommand16(0xD112); writedata16(0x01);
|
||||||
|
writecommand16(0xD113); writedata16(0x8C);
|
||||||
|
writecommand16(0xD114); writedata16(0x01);
|
||||||
|
writecommand16(0xD115); writedata16(0xBE);
|
||||||
|
writecommand16(0xD116); writedata16(0x02);
|
||||||
|
writecommand16(0xD117); writedata16(0x0B);
|
||||||
|
writecommand16(0xD118); writedata16(0x02);
|
||||||
|
writecommand16(0xD119); writedata16(0x48);
|
||||||
|
writecommand16(0xD11A); writedata16(0x02);
|
||||||
|
writecommand16(0xD11B); writedata16(0x4A);
|
||||||
|
writecommand16(0xD11C); writedata16(0x02);
|
||||||
|
writecommand16(0xD11D); writedata16(0x7E);
|
||||||
|
writecommand16(0xD11E); writedata16(0x02);
|
||||||
|
writecommand16(0xD11F); writedata16(0xBC);
|
||||||
|
writecommand16(0xD120); writedata16(0x02);
|
||||||
|
writecommand16(0xD121); writedata16(0xE1);
|
||||||
|
writecommand16(0xD122); writedata16(0x03);
|
||||||
|
writecommand16(0xD123); writedata16(0x10);
|
||||||
|
writecommand16(0xD124); writedata16(0x03);
|
||||||
|
writecommand16(0xD125); writedata16(0x31);
|
||||||
|
writecommand16(0xD126); writedata16(0x03);
|
||||||
|
writecommand16(0xD127); writedata16(0x5A);
|
||||||
|
writecommand16(0xD128); writedata16(0x03);
|
||||||
|
writecommand16(0xD129); writedata16(0x73);
|
||||||
|
writecommand16(0xD12A); writedata16(0x03);
|
||||||
|
writecommand16(0xD12B); writedata16(0x94);
|
||||||
|
writecommand16(0xD12C); writedata16(0x03);
|
||||||
|
writecommand16(0xD12D); writedata16(0x9F);
|
||||||
|
writecommand16(0xD12E); writedata16(0x03);
|
||||||
|
writecommand16(0xD12F); writedata16(0xB3);
|
||||||
|
writecommand16(0xD130); writedata16(0x03);
|
||||||
|
writecommand16(0xD131); writedata16(0xB9);
|
||||||
|
writecommand16(0xD132); writedata16(0x03);
|
||||||
|
writecommand16(0xD133); writedata16(0xC1);
|
||||||
|
|
||||||
|
/* GMGCTR1: Setting Gamma 2.2 Correction for Green (Positive) */
|
||||||
|
//#G+
|
||||||
|
writecommand16(0xD200); writedata16(0x00);
|
||||||
|
writecommand16(0xD201); writedata16(0x37);
|
||||||
|
writecommand16(0xD202); writedata16(0x00);
|
||||||
|
writecommand16(0xD203); writedata16(0x52);
|
||||||
|
writecommand16(0xD204); writedata16(0x00);
|
||||||
|
writecommand16(0xD205); writedata16(0x7B);
|
||||||
|
writecommand16(0xD206); writedata16(0x00);
|
||||||
|
writecommand16(0xD207); writedata16(0x99);
|
||||||
|
writecommand16(0xD208); writedata16(0x00);
|
||||||
|
writecommand16(0xD209); writedata16(0xB1);
|
||||||
|
writecommand16(0xD20A); writedata16(0x00);
|
||||||
|
writecommand16(0xD20B); writedata16(0xD2);
|
||||||
|
writecommand16(0xD20C); writedata16(0x00);
|
||||||
|
writecommand16(0xD20D); writedata16(0xF6);
|
||||||
|
writecommand16(0xD20E); writedata16(0x01);
|
||||||
|
writecommand16(0xD20F); writedata16(0x27);
|
||||||
|
writecommand16(0xD210); writedata16(0x01);
|
||||||
|
writecommand16(0xD211); writedata16(0x4E);
|
||||||
|
writecommand16(0xD212); writedata16(0x01);
|
||||||
|
writecommand16(0xD213); writedata16(0x8C);
|
||||||
|
writecommand16(0xD214); writedata16(0x01);
|
||||||
|
writecommand16(0xD215); writedata16(0xBE);
|
||||||
|
writecommand16(0xD216); writedata16(0x02);
|
||||||
|
writecommand16(0xD217); writedata16(0x0B);
|
||||||
|
writecommand16(0xD218); writedata16(0x02);
|
||||||
|
writecommand16(0xD219); writedata16(0x48);
|
||||||
|
writecommand16(0xD21A); writedata16(0x02);
|
||||||
|
writecommand16(0xD21B); writedata16(0x4A);
|
||||||
|
writecommand16(0xD21C); writedata16(0x02);
|
||||||
|
writecommand16(0xD21D); writedata16(0x7E);
|
||||||
|
writecommand16(0xD21E); writedata16(0x02);
|
||||||
|
writecommand16(0xD21F); writedata16(0xBC);
|
||||||
|
writecommand16(0xD220); writedata16(0x02);
|
||||||
|
writecommand16(0xD221); writedata16(0xE1);
|
||||||
|
writecommand16(0xD222); writedata16(0x03);
|
||||||
|
writecommand16(0xD223); writedata16(0x10);
|
||||||
|
writecommand16(0xD224); writedata16(0x03);
|
||||||
|
writecommand16(0xD225); writedata16(0x31);
|
||||||
|
writecommand16(0xD226); writedata16(0x03);
|
||||||
|
writecommand16(0xD227); writedata16(0x5A);
|
||||||
|
writecommand16(0xD228); writedata16(0x03);
|
||||||
|
writecommand16(0xD229); writedata16(0x73);
|
||||||
|
writecommand16(0xD22A); writedata16(0x03);
|
||||||
|
writecommand16(0xD22B); writedata16(0x94);
|
||||||
|
writecommand16(0xD22C); writedata16(0x03);
|
||||||
|
writecommand16(0xD22D); writedata16(0x9F);
|
||||||
|
writecommand16(0xD22E); writedata16(0x03);
|
||||||
|
writecommand16(0xD22F); writedata16(0xB3);
|
||||||
|
writecommand16(0xD230); writedata16(0x03);
|
||||||
|
writecommand16(0xD231); writedata16(0xB9);
|
||||||
|
writecommand16(0xD232); writedata16(0x03);
|
||||||
|
writecommand16(0xD233); writedata16(0xC1);
|
||||||
|
|
||||||
|
/* GMBCTR1: Setting Gamma 2.2 Correction for Blue (Positive) */
|
||||||
|
//#B+
|
||||||
|
writecommand16(0xD300); writedata16(0x00);
|
||||||
|
writecommand16(0xD301); writedata16(0x37);
|
||||||
|
writecommand16(0xD302); writedata16(0x00);
|
||||||
|
writecommand16(0xD303); writedata16(0x52);
|
||||||
|
writecommand16(0xD304); writedata16(0x00);
|
||||||
|
writecommand16(0xD305); writedata16(0x7B);
|
||||||
|
writecommand16(0xD306); writedata16(0x00);
|
||||||
|
writecommand16(0xD307); writedata16(0x99);
|
||||||
|
writecommand16(0xD308); writedata16(0x00);
|
||||||
|
writecommand16(0xD309); writedata16(0xB1);
|
||||||
|
writecommand16(0xD30A); writedata16(0x00);
|
||||||
|
writecommand16(0xD30B); writedata16(0xD2);
|
||||||
|
writecommand16(0xD30C); writedata16(0x00);
|
||||||
|
writecommand16(0xD30D); writedata16(0xF6);
|
||||||
|
writecommand16(0xD30E); writedata16(0x01);
|
||||||
|
writecommand16(0xD30F); writedata16(0x27);
|
||||||
|
writecommand16(0xD310); writedata16(0x01);
|
||||||
|
writecommand16(0xD311); writedata16(0x4E);
|
||||||
|
writecommand16(0xD312); writedata16(0x01);
|
||||||
|
writecommand16(0xD313); writedata16(0x8C);
|
||||||
|
writecommand16(0xD314); writedata16(0x01);
|
||||||
|
writecommand16(0xD315); writedata16(0xBE);
|
||||||
|
writecommand16(0xD316); writedata16(0x02);
|
||||||
|
writecommand16(0xD317); writedata16(0x0B);
|
||||||
|
writecommand16(0xD318); writedata16(0x02);
|
||||||
|
writecommand16(0xD319); writedata16(0x48);
|
||||||
|
writecommand16(0xD31A); writedata16(0x02);
|
||||||
|
writecommand16(0xD31B); writedata16(0x4A);
|
||||||
|
writecommand16(0xD31C); writedata16(0x02);
|
||||||
|
writecommand16(0xD31D); writedata16(0x7E);
|
||||||
|
writecommand16(0xD31E); writedata16(0x02);
|
||||||
|
writecommand16(0xD31F); writedata16(0xBC);
|
||||||
|
writecommand16(0xD320); writedata16(0x02);
|
||||||
|
writecommand16(0xD321); writedata16(0xE1);
|
||||||
|
writecommand16(0xD322); writedata16(0x03);
|
||||||
|
writecommand16(0xD323); writedata16(0x10);
|
||||||
|
writecommand16(0xD324); writedata16(0x03);
|
||||||
|
writecommand16(0xD325); writedata16(0x31);
|
||||||
|
writecommand16(0xD326); writedata16(0x03);
|
||||||
|
writecommand16(0xD327); writedata16(0x5A);
|
||||||
|
writecommand16(0xD328); writedata16(0x03);
|
||||||
|
writecommand16(0xD329); writedata16(0x73);
|
||||||
|
writecommand16(0xD32A); writedata16(0x03);
|
||||||
|
writecommand16(0xD32B); writedata16(0x94);
|
||||||
|
writecommand16(0xD32C); writedata16(0x03);
|
||||||
|
writecommand16(0xD32D); writedata16(0x9F);
|
||||||
|
writecommand16(0xD32E); writedata16(0x03);
|
||||||
|
writecommand16(0xD32F); writedata16(0xB3);
|
||||||
|
writecommand16(0xD330); writedata16(0x03);
|
||||||
|
writecommand16(0xD331); writedata16(0xB9);
|
||||||
|
writecommand16(0xD332); writedata16(0x03);
|
||||||
|
writecommand16(0xD333); writedata16(0xC1);
|
||||||
|
|
||||||
|
/* GMRCTR2: Setting Gamma 2.2 Correction for Red (Negative) */
|
||||||
|
//#R-///////////////////////////////////////////
|
||||||
|
writecommand16(0xD400); writedata16(0x00);
|
||||||
|
writecommand16(0xD401); writedata16(0x37);
|
||||||
|
writecommand16(0xD402); writedata16(0x00);
|
||||||
|
writecommand16(0xD403); writedata16(0x52);
|
||||||
|
writecommand16(0xD404); writedata16(0x00);
|
||||||
|
writecommand16(0xD405); writedata16(0x7B);
|
||||||
|
writecommand16(0xD406); writedata16(0x00);
|
||||||
|
writecommand16(0xD407); writedata16(0x99);
|
||||||
|
writecommand16(0xD408); writedata16(0x00);
|
||||||
|
writecommand16(0xD409); writedata16(0xB1);
|
||||||
|
writecommand16(0xD40A); writedata16(0x00);
|
||||||
|
writecommand16(0xD40B); writedata16(0xD2);
|
||||||
|
writecommand16(0xD40C); writedata16(0x00);
|
||||||
|
writecommand16(0xD40D); writedata16(0xF6);
|
||||||
|
writecommand16(0xD40E); writedata16(0x01);
|
||||||
|
writecommand16(0xD40F); writedata16(0x27);
|
||||||
|
writecommand16(0xD410); writedata16(0x01);
|
||||||
|
writecommand16(0xD411); writedata16(0x4E);
|
||||||
|
writecommand16(0xD412); writedata16(0x01);
|
||||||
|
writecommand16(0xD413); writedata16(0x8C);
|
||||||
|
writecommand16(0xD414); writedata16(0x01);
|
||||||
|
writecommand16(0xD415); writedata16(0xBE);
|
||||||
|
writecommand16(0xD416); writedata16(0x02);
|
||||||
|
writecommand16(0xD417); writedata16(0x0B);
|
||||||
|
writecommand16(0xD418); writedata16(0x02);
|
||||||
|
writecommand16(0xD419); writedata16(0x48);
|
||||||
|
writecommand16(0xD41A); writedata16(0x02);
|
||||||
|
writecommand16(0xD41B); writedata16(0x4A);
|
||||||
|
writecommand16(0xD41C); writedata16(0x02);
|
||||||
|
writecommand16(0xD41D); writedata16(0x7E);
|
||||||
|
writecommand16(0xD41E); writedata16(0x02);
|
||||||
|
writecommand16(0xD41F); writedata16(0xBC);
|
||||||
|
writecommand16(0xD420); writedata16(0x02);
|
||||||
|
writecommand16(0xD421); writedata16(0xE1);
|
||||||
|
writecommand16(0xD422); writedata16(0x03);
|
||||||
|
writecommand16(0xD423); writedata16(0x10);
|
||||||
|
writecommand16(0xD424); writedata16(0x03);
|
||||||
|
writecommand16(0xD425); writedata16(0x31);
|
||||||
|
writecommand16(0xD426); writedata16(0x03);
|
||||||
|
writecommand16(0xD427); writedata16(0x5A);
|
||||||
|
writecommand16(0xD428); writedata16(0x03);
|
||||||
|
writecommand16(0xD429); writedata16(0x73);
|
||||||
|
writecommand16(0xD42A); writedata16(0x03);
|
||||||
|
writecommand16(0xD42B); writedata16(0x94);
|
||||||
|
writecommand16(0xD42C); writedata16(0x03);
|
||||||
|
writecommand16(0xD42D); writedata16(0x9F);
|
||||||
|
writecommand16(0xD42E); writedata16(0x03);
|
||||||
|
writecommand16(0xD42F); writedata16(0xB3);
|
||||||
|
writecommand16(0xD430); writedata16(0x03);
|
||||||
|
writecommand16(0xD431); writedata16(0xB9);
|
||||||
|
writecommand16(0xD432); writedata16(0x03);
|
||||||
|
writecommand16(0xD433); writedata16(0xC1);
|
||||||
|
|
||||||
|
/* GMGCTR2: Setting Gamma 2.2 Correction for Green (Negative) */
|
||||||
|
//#G-//////////////////////////////////////////////
|
||||||
|
writecommand16(0xD500); writedata16(0x00);
|
||||||
|
writecommand16(0xD501); writedata16(0x37);
|
||||||
|
writecommand16(0xD502); writedata16(0x00);
|
||||||
|
writecommand16(0xD503); writedata16(0x52);
|
||||||
|
writecommand16(0xD504); writedata16(0x00);
|
||||||
|
writecommand16(0xD505); writedata16(0x7B);
|
||||||
|
writecommand16(0xD506); writedata16(0x00);
|
||||||
|
writecommand16(0xD507); writedata16(0x99);
|
||||||
|
writecommand16(0xD508); writedata16(0x00);
|
||||||
|
writecommand16(0xD509); writedata16(0xB1);
|
||||||
|
writecommand16(0xD50A); writedata16(0x00);
|
||||||
|
writecommand16(0xD50B); writedata16(0xD2);
|
||||||
|
writecommand16(0xD50C); writedata16(0x00);
|
||||||
|
writecommand16(0xD50D); writedata16(0xF6);
|
||||||
|
writecommand16(0xD50E); writedata16(0x01);
|
||||||
|
writecommand16(0xD50F); writedata16(0x27);
|
||||||
|
writecommand16(0xD510); writedata16(0x01);
|
||||||
|
writecommand16(0xD511); writedata16(0x4E);
|
||||||
|
writecommand16(0xD512); writedata16(0x01);
|
||||||
|
writecommand16(0xD513); writedata16(0x8C);
|
||||||
|
writecommand16(0xD514); writedata16(0x01);
|
||||||
|
writecommand16(0xD515); writedata16(0xBE);
|
||||||
|
writecommand16(0xD516); writedata16(0x02);
|
||||||
|
writecommand16(0xD517); writedata16(0x0B);
|
||||||
|
writecommand16(0xD518); writedata16(0x02);
|
||||||
|
writecommand16(0xD519); writedata16(0x48);
|
||||||
|
writecommand16(0xD51A); writedata16(0x02);
|
||||||
|
writecommand16(0xD51B); writedata16(0x4A);
|
||||||
|
writecommand16(0xD51C); writedata16(0x02);
|
||||||
|
writecommand16(0xD51D); writedata16(0x7E);
|
||||||
|
writecommand16(0xD51E); writedata16(0x02);
|
||||||
|
writecommand16(0xD51F); writedata16(0xBC);
|
||||||
|
writecommand16(0xD520); writedata16(0x02);
|
||||||
|
writecommand16(0xD521); writedata16(0xE1);
|
||||||
|
writecommand16(0xD522); writedata16(0x03);
|
||||||
|
writecommand16(0xD523); writedata16(0x10);
|
||||||
|
writecommand16(0xD524); writedata16(0x03);
|
||||||
|
writecommand16(0xD525); writedata16(0x31);
|
||||||
|
writecommand16(0xD526); writedata16(0x03);
|
||||||
|
writecommand16(0xD527); writedata16(0x5A);
|
||||||
|
writecommand16(0xD528); writedata16(0x03);
|
||||||
|
writecommand16(0xD529); writedata16(0x73);
|
||||||
|
writecommand16(0xD52A); writedata16(0x03);
|
||||||
|
writecommand16(0xD52B); writedata16(0x94);
|
||||||
|
writecommand16(0xD52C); writedata16(0x03);
|
||||||
|
writecommand16(0xD52D); writedata16(0x9F);
|
||||||
|
writecommand16(0xD52E); writedata16(0x03);
|
||||||
|
writecommand16(0xD52F); writedata16(0xB3);
|
||||||
|
writecommand16(0xD530); writedata16(0x03);
|
||||||
|
writecommand16(0xD531); writedata16(0xB9);
|
||||||
|
writecommand16(0xD532); writedata16(0x03);
|
||||||
|
writecommand16(0xD533); writedata16(0xC1);
|
||||||
|
|
||||||
|
/* GMBCTR2: Setting Gamma 2.2 Correction for Blue (Negative) */
|
||||||
|
//#B-///////////////////////////////
|
||||||
|
writecommand16(0xD600); writedata16(0x00);
|
||||||
|
writecommand16(0xD601); writedata16(0x37);
|
||||||
|
writecommand16(0xD602); writedata16(0x00);
|
||||||
|
writecommand16(0xD603); writedata16(0x52);
|
||||||
|
writecommand16(0xD604); writedata16(0x00);
|
||||||
|
writecommand16(0xD605); writedata16(0x7B);
|
||||||
|
writecommand16(0xD606); writedata16(0x00);
|
||||||
|
writecommand16(0xD607); writedata16(0x99);
|
||||||
|
writecommand16(0xD608); writedata16(0x00);
|
||||||
|
writecommand16(0xD609); writedata16(0xB1);
|
||||||
|
writecommand16(0xD60A); writedata16(0x00);
|
||||||
|
writecommand16(0xD60B); writedata16(0xD2);
|
||||||
|
writecommand16(0xD60C); writedata16(0x00);
|
||||||
|
writecommand16(0xD60D); writedata16(0xF6);
|
||||||
|
writecommand16(0xD60E); writedata16(0x01);
|
||||||
|
writecommand16(0xD60F); writedata16(0x27);
|
||||||
|
writecommand16(0xD610); writedata16(0x01);
|
||||||
|
writecommand16(0xD611); writedata16(0x4E);
|
||||||
|
writecommand16(0xD612); writedata16(0x01);
|
||||||
|
writecommand16(0xD613); writedata16(0x8C);
|
||||||
|
writecommand16(0xD614); writedata16(0x01);
|
||||||
|
writecommand16(0xD615); writedata16(0xBE);
|
||||||
|
writecommand16(0xD616); writedata16(0x02);
|
||||||
|
writecommand16(0xD617); writedata16(0x0B);
|
||||||
|
writecommand16(0xD618); writedata16(0x02);
|
||||||
|
writecommand16(0xD619); writedata16(0x48);
|
||||||
|
writecommand16(0xD61A); writedata16(0x02);
|
||||||
|
writecommand16(0xD61B); writedata16(0x4A);
|
||||||
|
writecommand16(0xD61C); writedata16(0x02);
|
||||||
|
writecommand16(0xD61D); writedata16(0x7E);
|
||||||
|
writecommand16(0xD61E); writedata16(0x02);
|
||||||
|
writecommand16(0xD61F); writedata16(0xBC);
|
||||||
|
writecommand16(0xD620); writedata16(0x02);
|
||||||
|
writecommand16(0xD621); writedata16(0xE1);
|
||||||
|
writecommand16(0xD622); writedata16(0x03);
|
||||||
|
writecommand16(0xD623); writedata16(0x10);
|
||||||
|
writecommand16(0xD624); writedata16(0x03);
|
||||||
|
writecommand16(0xD625); writedata16(0x31);
|
||||||
|
writecommand16(0xD626); writedata16(0x03);
|
||||||
|
writecommand16(0xD627); writedata16(0x5A);
|
||||||
|
writecommand16(0xD628); writedata16(0x03);
|
||||||
|
writecommand16(0xD629); writedata16(0x73);
|
||||||
|
writecommand16(0xD62A); writedata16(0x03);
|
||||||
|
writecommand16(0xD62B); writedata16(0x94);
|
||||||
|
writecommand16(0xD62C); writedata16(0x03);
|
||||||
|
writecommand16(0xD62D); writedata16(0x9F);
|
||||||
|
writecommand16(0xD62E); writedata16(0x03);
|
||||||
|
writecommand16(0xD62F); writedata16(0xB3);
|
||||||
|
writecommand16(0xD630); writedata16(0x03);
|
||||||
|
writecommand16(0xD631); writedata16(0xB9);
|
||||||
|
writecommand16(0xD632); writedata16(0x03);
|
||||||
|
writecommand16(0xD633); writedata16(0xC1);
|
||||||
|
|
||||||
|
/* MAUCCTR: Manufacture Command Set enable */
|
||||||
|
//#Enable Page0
|
||||||
|
writecommand16(0xF000); writedata16(0x55);
|
||||||
|
writecommand16(0xF001); writedata16(0xAA);
|
||||||
|
writecommand16(0xF002); writedata16(0x52);
|
||||||
|
writecommand16(0xF003); writedata16(0x08);
|
||||||
|
writecommand16(0xF004); writedata16(0x00);
|
||||||
|
|
||||||
|
/* RGBCTR: RGB Interface Signals Control */
|
||||||
|
//# RGB I/F Setting
|
||||||
|
writecommand16(0xB000); writedata16(0x08);
|
||||||
|
writecommand16(0xB001); writedata16(0x05);
|
||||||
|
writecommand16(0xB002); writedata16(0x02);
|
||||||
|
writecommand16(0xB003); writedata16(0x05);
|
||||||
|
writecommand16(0xB004); writedata16(0x02);
|
||||||
|
|
||||||
|
/* SDHDTCTR: Source Output Data Hold Time Control */
|
||||||
|
//## SDT:
|
||||||
|
writecommand16(0xB600); writedata16(0x08);
|
||||||
|
|
||||||
|
/* DPRSLCTR: Display Resolution Control */
|
||||||
|
writecommand16(0xB500); writedata16(0x50);//0x6b ???? 480x854 0x50 ???? 480x800
|
||||||
|
|
||||||
|
/* GSEQCTR: EQ Control Function for Gate Signals */
|
||||||
|
//## Gate EQ:
|
||||||
|
writecommand16(0xB700); writedata16(0x00);
|
||||||
|
writecommand16(0xB701); writedata16(0x00);
|
||||||
|
|
||||||
|
/* SDEQCTR: EQ Control Function for Source Driver */
|
||||||
|
//## Source EQ:
|
||||||
|
writecommand16(0xB800); writedata16(0x01);
|
||||||
|
writecommand16(0xB801); writedata16(0x05);
|
||||||
|
writecommand16(0xB802); writedata16(0x05);
|
||||||
|
writecommand16(0xB803); writedata16(0x05);
|
||||||
|
|
||||||
|
/* INVCTR: Inversion Driving Control */
|
||||||
|
//# Inversion: Column inversion (NVT)
|
||||||
|
writecommand16(0xBC00); writedata16(0x00);
|
||||||
|
writecommand16(0xBC01); writedata16(0x00);
|
||||||
|
writecommand16(0xBC02); writedata16(0x00);
|
||||||
|
|
||||||
|
/* DPTMCTR12: Display Timing Control 12 */
|
||||||
|
//# BOE's Setting(default)
|
||||||
|
writecommand16(0xCC00); writedata16(0x03);
|
||||||
|
writecommand16(0xCC01); writedata16(0x00);
|
||||||
|
writecommand16(0xCC02); writedata16(0x00);
|
||||||
|
|
||||||
|
/* DPFRCTR1: Display Timing Control in Normal / Idle Off Mode */
|
||||||
|
//# Display Timing:
|
||||||
|
writecommand16(0xBD00); writedata16(0x01);
|
||||||
|
writecommand16(0xBD01); writedata16(0x84);
|
||||||
|
writecommand16(0xBD02); writedata16(0x07);
|
||||||
|
writecommand16(0xBD03); writedata16(0x31);
|
||||||
|
writecommand16(0xBD04); writedata16(0x00);
|
||||||
|
|
||||||
|
/* SDVPCTR: Source Control in Vertical Porch Time */
|
||||||
|
writecommand16(0xBA00); writedata16(0x01);
|
||||||
|
|
||||||
|
/* MAUCCTR: Manufacture Command Set disable (?) */
|
||||||
|
writecommand16(0xFF00); writedata16(0xAA);
|
||||||
|
writecommand16(0xFF01); writedata16(0x55);
|
||||||
|
writecommand16(0xFF02); writedata16(0x25);
|
||||||
|
writecommand16(0xFF03); writedata16(0x01);
|
||||||
|
|
||||||
|
/* TEON: Tearing Effect Line ON */
|
||||||
|
writecommand16(0x3500); writedata16(0x00);
|
||||||
|
|
||||||
|
/* MADCTL: Memory Data Access Control */
|
||||||
|
writecommand16(TFT_MADCTL); writedata16(0x00);
|
||||||
|
|
||||||
|
/* COLMOD: Interface Pixel Format */
|
||||||
|
/* “0101” = 16-bit/pixel
|
||||||
|
“0110” = 18-bit/pixel
|
||||||
|
“0111” = 24-bit/pixel */
|
||||||
|
writecommand16(0x3a00); writedata16(0x55); ////55=16?/////66=18?
|
||||||
|
|
||||||
|
/* SLPOUT: Sleep Out */
|
||||||
|
writecommand16(TFT_SLPOUT);
|
||||||
|
delay(120);
|
||||||
|
|
||||||
|
/* DISPON: Display On */
|
||||||
|
writecommand16(TFT_DISPON);
|
||||||
|
|
||||||
|
/* RAMWR: Memory Write */
|
||||||
|
//writecommand16(TFT_RAMWR);
|
||||||
|
|
||||||
// End of NT35510 display configuration
|
// End of NT35510 display configuration
|
||||||
|
|
@ -1,32 +1,26 @@
|
||||||
// This is the command sequence that rotates the NT35510 driver coordinate frame
|
// This is the command sequence that rotates the NT35510 driver coordinate frame
|
||||||
|
|
||||||
rotation = m % 4;
|
rotation = m % 4;
|
||||||
writecommand(TFT_MADCTL);
|
writecommand16(TFT_MADCTL);
|
||||||
writecommand(TFT_NOP);
|
|
||||||
switch (rotation) {
|
switch (rotation) {
|
||||||
case 0: // Portrait
|
case 0: // Portrait
|
||||||
|
writedata16(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_RGB);
|
||||||
_width = TFT_WIDTH;
|
_width = TFT_WIDTH;
|
||||||
_height = TFT_HEIGHT;
|
_height = TFT_HEIGHT;
|
||||||
writedata(0x00);
|
|
||||||
writedata(0x00);
|
|
||||||
break;
|
break;
|
||||||
case 1: // Landscape (Portrait + 90)
|
case 1: // Landscape (Portrait + 90)
|
||||||
|
writedata16(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_RGB);
|
||||||
_width = TFT_HEIGHT;
|
_width = TFT_HEIGHT;
|
||||||
_height = TFT_WIDTH;
|
_height = TFT_WIDTH;
|
||||||
writedata((1<<5)|(1<<6));
|
|
||||||
writedata(0x00);
|
|
||||||
break;
|
break;
|
||||||
case 2: // Inverter portrait
|
case 2: // Inverter portrait
|
||||||
|
writedata16(TFT_MAD_RGB);
|
||||||
_width = TFT_WIDTH;
|
_width = TFT_WIDTH;
|
||||||
_height = TFT_HEIGHT;
|
_height = TFT_HEIGHT;
|
||||||
writedata((1<<7)|(1<<6));
|
|
||||||
writedata(0x00);
|
|
||||||
break;
|
break;
|
||||||
case 3: // Inverted landscape
|
case 3: // Inverted landscape
|
||||||
|
writedata16(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_RGB);
|
||||||
_width = TFT_HEIGHT;
|
_width = TFT_HEIGHT;
|
||||||
_height = TFT_WIDTH;
|
_height = TFT_WIDTH;
|
||||||
|
|
||||||
writedata((1<<7)|(1<<5));
|
|
||||||
writedata(0x00);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -7,25 +7,25 @@
|
||||||
#define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked
|
#define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked
|
||||||
|
|
||||||
// Generic commands used by TFT_eSPI.cpp
|
// Generic commands used by TFT_eSPI.cpp
|
||||||
#define TFT_NOP 0x00
|
#define TFT_NOP 0x0000
|
||||||
#define TFT_SWRST 0x01
|
#define TFT_SWRST 0x0100
|
||||||
|
|
||||||
#define TFT_SLPIN 0x10
|
#define TFT_SLPIN 0x1000
|
||||||
#define TFT_SLPOUT 0x11
|
#define TFT_SLPOUT 0x1100
|
||||||
|
|
||||||
#define TFT_INVOFF 0x20
|
#define TFT_INVOFF 0x2000
|
||||||
#define TFT_INVON 0x21
|
#define TFT_INVON 0x2100
|
||||||
|
|
||||||
#define TFT_DISPOFF 0x28
|
#define TFT_DISPOFF 0x2800
|
||||||
#define TFT_DISPON 0x29
|
#define TFT_DISPON 0x2900
|
||||||
|
|
||||||
#define TFT_CASET 0x2A00
|
#define TFT_CASET 0x2A00
|
||||||
#define TFT_PASET 0x2B00
|
#define TFT_PASET 0x2B00
|
||||||
|
|
||||||
#define TFT_RAMWR 0x2C
|
#define TFT_RAMWR 0x2C00
|
||||||
#define TFT_RAMRD 0x2E
|
#define TFT_RAMRD 0x2E00
|
||||||
|
|
||||||
#define TFT_MADCTL 0x36
|
#define TFT_MADCTL 0x3600
|
||||||
|
|
||||||
#define TFT_MAD_MY 0x80 /* Row Address Order */
|
#define TFT_MAD_MY 0x80 /* Row Address Order */
|
||||||
#define TFT_MAD_MX 0x40 /* Column Address Order */
|
#define TFT_MAD_MX 0x40 /* Column Address Order */
|
||||||
|
|
@ -101,6 +101,12 @@
|
||||||
DC_C; tft_Write_16(TFT_PASET + 3); \
|
DC_C; tft_Write_16(TFT_PASET + 3); \
|
||||||
DC_D; tft_Write_16(Byte8L(y1))
|
DC_D; tft_Write_16(Byte8L(y1))
|
||||||
|
|
||||||
|
#define TFT_RAMWR_CMD \
|
||||||
|
DC_C; tft_Write_16(TFT_RAMWR)
|
||||||
|
|
||||||
|
#define TFT_RAMRD_CMD \
|
||||||
|
DC_C; tft_Write_16(TFT_RAMRD)
|
||||||
|
|
||||||
#define writecommand16(cmd) \
|
#define writecommand16(cmd) \
|
||||||
writecommand(Byte8H(cmd)); writecommand(Byte8L(cmd))
|
writecommand(Byte8H(cmd)); writecommand(Byte8L(cmd))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
// This is the command sequence that initialises the OTM8009A driver
|
// This is the command sequence that initialises the OTM8009A driver
|
||||||
// Configure OTM8009A display
|
|
||||||
|
|
||||||
//3.97inch OTM8009 Init 20190116
|
//3.97inch OTM8009 Init 20190116
|
||||||
/* Enter CMD2 */
|
/* Enter CMD2 */
|
||||||
|
|
@ -367,7 +366,7 @@
|
||||||
writecommand16(0x3A00);//ccaa[7:0] : reg setting for signal35 selection with u2d mode
|
writecommand16(0x3A00);//ccaa[7:0] : reg setting for signal35 selection with u2d mode
|
||||||
writedata16(0x55);//0x55
|
writedata16(0x55);//0x55
|
||||||
|
|
||||||
/* Exit CMD2 - new! */
|
/* Exit CMD2 */
|
||||||
writecommand16(MCS_CMD2_ENA1);
|
writecommand16(MCS_CMD2_ENA1);
|
||||||
writedata16(0xFF);
|
writedata16(0xFF);
|
||||||
writecommand16(MCS_CMD2_ENA1 + 1);
|
writecommand16(MCS_CMD2_ENA1 + 1);
|
||||||
|
|
@ -376,13 +375,11 @@
|
||||||
writedata16(0xFF);
|
writedata16(0xFF);
|
||||||
|
|
||||||
/* Sleep out */
|
/* Sleep out */
|
||||||
writecommand(TFT_SLPOUT);
|
writecommand16(TFT_SLPOUT);
|
||||||
writecommand(TFT_NOP);
|
|
||||||
delay(100);
|
delay(100);
|
||||||
|
|
||||||
/* Display on */
|
/* Display on */
|
||||||
writecommand(TFT_DISPON);
|
writecommand16(TFT_DISPON);
|
||||||
writecommand(TFT_NOP);
|
|
||||||
delay(50);
|
delay(50);
|
||||||
|
|
||||||
/* Memory Write */
|
/* Memory Write */
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,25 @@
|
||||||
// This is the command sequence that rotates the OTM8009A driver coordinate frame
|
// This is the command sequence that rotates the OTM8009A driver coordinate frame
|
||||||
rotation = m % 4;
|
rotation = m % 4;
|
||||||
writecommand(TFT_MADCTL);
|
writecommand16(TFT_MADCTL);
|
||||||
|
|
||||||
switch (rotation) {
|
switch (rotation) {
|
||||||
case 0: // Portrait
|
case 0: // Portrait
|
||||||
writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_RGB);
|
writedata16(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_RGB);
|
||||||
_width = TFT_WIDTH;
|
_width = TFT_WIDTH;
|
||||||
_height = TFT_HEIGHT;
|
_height = TFT_HEIGHT;
|
||||||
break;
|
break;
|
||||||
case 1: // Landscape (Portrait + 90)
|
case 1: // Landscape (Portrait + 90)
|
||||||
writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_RGB);
|
writedata16(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_RGB);
|
||||||
_width = TFT_HEIGHT;
|
_width = TFT_HEIGHT;
|
||||||
_height = TFT_WIDTH;
|
_height = TFT_WIDTH;
|
||||||
break;
|
break;
|
||||||
case 2: // Inverter portrait
|
case 2: // Inverter portrait
|
||||||
writedata(TFT_MAD_RGB);
|
writedata16(TFT_MAD_RGB);
|
||||||
_width = TFT_WIDTH;
|
_width = TFT_WIDTH;
|
||||||
_height = TFT_HEIGHT;
|
_height = TFT_HEIGHT;
|
||||||
break;
|
break;
|
||||||
case 3: // Inverted landscape
|
case 3: // Inverted landscape
|
||||||
writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_RGB);
|
writedata16(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_RGB);
|
||||||
_width = TFT_HEIGHT;
|
_width = TFT_HEIGHT;
|
||||||
_height = TFT_WIDTH;
|
_height = TFT_WIDTH;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue