kopia lustrzana https://github.com/Xinyuan-LilyGO/TTGO-T-Display
306 wiersze
6.6 KiB
C
306 wiersze
6.6 KiB
C
#if defined (SSD1963_480_DRIVER)
|
|
|
|
writecommand(0xE2); //PLL multiplier, set PLL clock to 120M
|
|
writedata(0x23); //N=0x36 for 6.5M, 0x23 for 10M crystal
|
|
writedata(0x02);
|
|
writedata(0x54);
|
|
writecommand(0xE0); // PLL enable
|
|
writedata(0x01);
|
|
|
|
delay(10);
|
|
|
|
writecommand(0xE0);
|
|
writedata(0x03);
|
|
|
|
delay(10);
|
|
|
|
writecommand(0x01); // software reset
|
|
|
|
delay(100);
|
|
|
|
writecommand(0xE6); //PLL setting for PCLK, depends on resolution
|
|
writedata(0x01);
|
|
writedata(0x1F);
|
|
writedata(0xFF);
|
|
|
|
writecommand(0xB0); //LCD SPECIFICATION
|
|
writedata(0x20);
|
|
writedata(0x00);
|
|
writedata(0x01); //Set HDP 479
|
|
writedata(0xDF);
|
|
writedata(0x01); //Set VDP 271
|
|
writedata(0x0F);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB4); //HSYNC
|
|
writedata(0x02); //Set HT 531
|
|
writedata(0x13);
|
|
writedata(0x00); //Set HPS 8
|
|
writedata(0x08);
|
|
writedata(0x2B); //Set HPW 43
|
|
writedata(0x00); //Set LPS 2
|
|
writedata(0x02);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB6); //VSYNC
|
|
writedata(0x01); //Set VT 288
|
|
writedata(0x20);
|
|
writedata(0x00); //Set VPS 4
|
|
writedata(0x04);
|
|
writedata(0x0c); //Set VPW 12
|
|
writedata(0x00); //Set FPS 2
|
|
writedata(0x02);
|
|
|
|
writecommand(0xBA);
|
|
writedata(0x0F); //GPIO[3:0] out 1
|
|
|
|
writecommand(0xB8);
|
|
writedata(0x07); //GPIO3=input, GPIO[2:0]=output
|
|
writedata(0x01); //GPIO0 normal
|
|
|
|
writecommand(0x36); //rotation
|
|
writedata(0x2A);
|
|
|
|
writecommand(0xF0); //pixel data interface
|
|
writedata(0x00); //8 bit bus
|
|
|
|
delay(1);
|
|
|
|
writecommand(0xB8);
|
|
writedata(0x0f); //GPIO is controlled by host GPIO[3:0]=output GPIO[0]=1 LCD ON GPIO[0]=1 LCD OFF
|
|
writedata(0x01); //GPIO0 normal
|
|
|
|
writecommand(0xBA);
|
|
writedata(0x01); //GPIO[0] out 1 --- LCD display on/off control PIN
|
|
|
|
writecommand(0x2A);
|
|
writedata(0);
|
|
writedata(0);
|
|
writedata((271 & 0xFF00)>>8);
|
|
writedata(271 & 0xFF);
|
|
|
|
writecommand(0x2B);
|
|
writedata(0);
|
|
writedata(0);
|
|
writedata((479 & 0xFF00)>>8);
|
|
writedata(479 & 0xFF);
|
|
|
|
writecommand(0x2C);
|
|
|
|
writecommand(0x29); //display on
|
|
|
|
writecommand(0xBE); //set PWM for B/L
|
|
writedata(0x06);
|
|
writedata(0xf0);
|
|
writedata(0x01);
|
|
writedata(0xf0);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xd0);
|
|
writedata(0x0d);
|
|
|
|
writecommand(0x2C);
|
|
|
|
#elif defined (SSD1963_800_DRIVER)
|
|
|
|
writecommand(0xE2); //PLL multiplier, set PLL clock to 120M
|
|
writedata(0x1E); //N=0x36 for 6.5M, 0x23 for 10M crystal
|
|
writedata(0x02);
|
|
writedata(0x54);
|
|
writecommand(0xE0); // PLL enable
|
|
writedata(0x01);
|
|
|
|
delay(10);
|
|
|
|
writecommand(0xE0);
|
|
writedata(0x03);
|
|
|
|
delay(10);
|
|
|
|
writecommand(0x01); // software reset
|
|
|
|
delay(100);
|
|
|
|
writecommand(0xE6); //PLL setting for PCLK, depends on resolution
|
|
writedata(0x03);
|
|
writedata(0xFF);
|
|
writedata(0xFF);
|
|
|
|
writecommand(0xB0); //LCD SPECIFICATION
|
|
writedata(0x20);
|
|
writedata(0x00);
|
|
writedata(0x03); //Set HDP 799
|
|
writedata(0x1F);
|
|
writedata(0x01); //Set VDP 479
|
|
writedata(0xDF);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB4); //HSYNC
|
|
writedata(0x03); //Set HT 928
|
|
writedata(0xA0);
|
|
writedata(0x00); //Set HPS 46
|
|
writedata(0x2E);
|
|
writedata(0x30); //Set HPW 48
|
|
writedata(0x00); //Set LPS 15
|
|
writedata(0x0F);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB6); //VSYNC
|
|
writedata(0x02); //Set VT 525
|
|
writedata(0x0D);
|
|
writedata(0x00); //Set VPS 16
|
|
writedata(0x10);
|
|
writedata(0x10); //Set VPW 16
|
|
writedata(0x00); //Set FPS 8
|
|
writedata(0x08);
|
|
|
|
writecommand(0xBA);
|
|
writedata(0x0F); //GPIO[3:0] out 1
|
|
|
|
writecommand(0xB8);
|
|
writedata(0x07); //GPIO3=input, GPIO[2:0]=output
|
|
writedata(0x01); //GPIO0 normal
|
|
|
|
writecommand(0x36); //rotation
|
|
writedata(0x2A);
|
|
|
|
writecommand(0xF0); //pixel data interface
|
|
writedata(0x00); //8 bit bus
|
|
|
|
delay(1);
|
|
|
|
writecommand(0xB8);
|
|
writedata(0x0f); //GPIO is controlled by host GPIO[3:0]=output GPIO[0]=1 LCD ON GPIO[0]=1 LCD OFF
|
|
writedata(0x01); //GPIO0 normal
|
|
|
|
writecommand(0xBA);
|
|
writedata(0x01); //GPIO[0] out 1 --- LCD display on/off control PIN
|
|
|
|
writecommand(0x2A);
|
|
writedata(0);
|
|
writedata(0);
|
|
writedata((479 & 0xFF00)>>8);
|
|
writedata(479 & 0xFF);
|
|
|
|
writecommand(0x2B);
|
|
writedata(0);
|
|
writedata(0);
|
|
writedata((799 & 0xFF00)>>8);
|
|
writedata(799 & 0xFF);
|
|
|
|
writecommand(0x2C);
|
|
|
|
writecommand(0x29); //display on
|
|
|
|
writecommand(0xBE); //set PWM for B/L
|
|
writedata(0x06);
|
|
writedata(0xf0);
|
|
writedata(0x01);
|
|
writedata(0xf0);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xd0);
|
|
writedata(0x0d);
|
|
|
|
writecommand(0x2C);
|
|
|
|
#elif defined (SSD1963_800ALT_DRIVER)
|
|
|
|
writecommand(0xE2); //PLL multiplier, set PLL clock to 120M
|
|
writedata(0x23); //N=0x36 for 6.5M, 0x23 for 10M crystal
|
|
writedata(0x02);
|
|
writedata(0x04);
|
|
writecommand(0xE0); // PLL enable
|
|
writedata(0x01);
|
|
|
|
delay(10);
|
|
|
|
writecommand(0xE0);
|
|
writedata(0x03);
|
|
|
|
delay(10);
|
|
|
|
writecommand(0x01); // software reset
|
|
|
|
delay(100);
|
|
|
|
writecommand(0xE6); //PLL setting for PCLK, depends on resolution
|
|
writedata(0x04);
|
|
writedata(0x93);
|
|
writedata(0xE0);
|
|
|
|
writecommand(0xB0); //LCD SPECIFICATION
|
|
writedata(0x00); // 0x24
|
|
writedata(0x00);
|
|
writedata(0x03); //Set HDP 799
|
|
writedata(0x1F);
|
|
writedata(0x01); //Set VDP 479
|
|
writedata(0xDF);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB4); //HSYNC
|
|
writedata(0x03); //Set HT 928
|
|
writedata(0xA0);
|
|
writedata(0x00); //Set HPS 46
|
|
writedata(0x2E);
|
|
writedata(0x30); //Set HPW 48
|
|
writedata(0x00); //Set LPS 15
|
|
writedata(0x0F);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB6); //VSYNC
|
|
writedata(0x02); //Set VT 525
|
|
writedata(0x0D);
|
|
writedata(0x00); //Set VPS 16
|
|
writedata(0x10);
|
|
writedata(0x10); //Set VPW 16
|
|
writedata(0x00); //Set FPS 8
|
|
writedata(0x08);
|
|
|
|
writecommand(0xBA);
|
|
writedata(0x05); //GPIO[3:0] out 1
|
|
|
|
writecommand(0xB8);
|
|
writedata(0x07); //GPIO3=input, GPIO[2:0]=output
|
|
writedata(0x01); //GPIO0 normal
|
|
|
|
writecommand(0x36); //rotation
|
|
writedata(0x22); // -- Set to 0x21 to rotate 180 degrees
|
|
|
|
writecommand(0xF0); //pixel data interface
|
|
writedata(0x00); //8 bit bus
|
|
|
|
delay(10);
|
|
|
|
writecommand(0x2A);
|
|
writedata(0);
|
|
writedata(0);
|
|
writedata((479 & 0xFF00)>>8);
|
|
writedata(479 & 0xFF);
|
|
|
|
writecommand(0x2B);
|
|
writedata(0);
|
|
writedata(0);
|
|
writedata((799 & 0xFF00)>>8);
|
|
writedata(799 & 0xFF);
|
|
|
|
writecommand(0x2C);
|
|
|
|
writecommand(0x29); //display on
|
|
|
|
writecommand(0xBE); //set PWM for B/L
|
|
writedata(0x06);
|
|
writedata(0xF0);
|
|
writedata(0x01);
|
|
writedata(0xF0);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xD0);
|
|
writedata(0x0D);
|
|
|
|
writecommand(0x2C);
|
|
|
|
#endif |