107 lines
3.1 KiB
C
107 lines
3.1 KiB
C
|
|
||
|
// This is the command sequence that initialises the ST7796 driver
|
||
|
//
|
||
|
// This setup information uses simple 8 bit SPI writecommand() and writedata() functions
|
||
|
//
|
||
|
// See ST7735_Setup.h file for an alternative format
|
||
|
|
||
|
#define TFT_INIT_DELAY 0
|
||
|
{
|
||
|
delay(120);
|
||
|
|
||
|
writecommand(0x01); //Software reset
|
||
|
delay(120);
|
||
|
|
||
|
writecommand(0x11); //Sleep exit
|
||
|
delay(120);
|
||
|
|
||
|
writecommand(0xF0); //Command Set control
|
||
|
writedata(0xC3); //Enable extension command 2 partI
|
||
|
|
||
|
writecommand(0xF0); //Command Set control
|
||
|
writedata(0x96); //Enable extension command 2 partII
|
||
|
|
||
|
writecommand(0x36); //Memory Data Access Control MX, MY, RGB mode
|
||
|
writedata(0x48); //X-Mirror, Top-Left to right-Buttom, RGB
|
||
|
|
||
|
writecommand(0x3A); //Interface Pixel Format
|
||
|
writedata(0x55); //Control interface color format set to 16
|
||
|
|
||
|
|
||
|
writecommand(0xB4); //Column inversion
|
||
|
writedata(0x01); //1-dot inversion
|
||
|
|
||
|
writecommand(0xB6); //Display Function Control
|
||
|
writedata(0x80); //Bypass
|
||
|
writedata(0x02); //Source Output Scan from S1 to S960, Gate Output scan from G1 to G480, scan cycle=2
|
||
|
writedata(0x3B); //LCD Drive Line=8*(59+1)
|
||
|
|
||
|
|
||
|
writecommand(0xE8); //Display Output Ctrl Adjust
|
||
|
writedata(0x40);
|
||
|
writedata(0x8A);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
writedata(0x29); //Source eqaulizing period time= 22.5 us
|
||
|
writedata(0x19); //Timing for "Gate start"=25 (Tclk)
|
||
|
writedata(0xA5); //Timing for "Gate End"=37 (Tclk), Gate driver EQ function ON
|
||
|
writedata(0x33);
|
||
|
|
||
|
writecommand(0xC1); //Power control2
|
||
|
writedata(0x06); //VAP(GVDD)=3.85+( vcom+vcom offset), VAN(GVCL)=-3.85+( vcom+vcom offset)
|
||
|
|
||
|
writecommand(0xC2); //Power control 3
|
||
|
writedata(0xA7); //Source driving current level=low, Gamma driving current level=High
|
||
|
|
||
|
writecommand(0xC5); //VCOM Control
|
||
|
writedata(0x18); //VCOM=0.9
|
||
|
|
||
|
delay(120);
|
||
|
|
||
|
//ST7796 Gamma Sequence
|
||
|
writecommand(0xE0); //Gamma"+"
|
||
|
writedata(0xF0);
|
||
|
writedata(0x09);
|
||
|
writedata(0x0b);
|
||
|
writedata(0x06);
|
||
|
writedata(0x04);
|
||
|
writedata(0x15);
|
||
|
writedata(0x2F);
|
||
|
writedata(0x54);
|
||
|
writedata(0x42);
|
||
|
writedata(0x3C);
|
||
|
writedata(0x17);
|
||
|
writedata(0x14);
|
||
|
writedata(0x18);
|
||
|
writedata(0x1B);
|
||
|
|
||
|
writecommand(0xE1); //Gamma"-"
|
||
|
writedata(0xE0);
|
||
|
writedata(0x09);
|
||
|
writedata(0x0B);
|
||
|
writedata(0x06);
|
||
|
writedata(0x04);
|
||
|
writedata(0x03);
|
||
|
writedata(0x2B);
|
||
|
writedata(0x43);
|
||
|
writedata(0x42);
|
||
|
writedata(0x3B);
|
||
|
writedata(0x16);
|
||
|
writedata(0x14);
|
||
|
writedata(0x17);
|
||
|
writedata(0x1B);
|
||
|
|
||
|
delay(120);
|
||
|
|
||
|
writecommand(0xF0); //Command Set control
|
||
|
writedata(0x3C); //Disable extension command 2 partI
|
||
|
|
||
|
writecommand(0xF0); //Command Set control
|
||
|
writedata(0x69); //Disable extension command 2 partII
|
||
|
|
||
|
end_tft_write();
|
||
|
delay(120);
|
||
|
begin_tft_write();
|
||
|
|
||
|
writecommand(0x29); //Display on
|
||
|
}
|