예제 #1
0
void ITDB02::setXY(int x1, int y1, int x2, int y2)
{
	int tmp;

	if (orient==LANDSCAPE)
	{
		tmp=x1;
		x1=y1;
		y1=319-tmp;
		tmp=x2;
		x2=y2;
		y2=319-tmp;
		tmp=y1;
		y1=y2;
		y2=tmp;
	}

	main_W_com_data(0x20,x1);    
	main_W_com_data(0x21,y1);   
	main_W_com_data(0x50,x1);   
	main_W_com_data(0x52,y1);   
	main_W_com_data(0x51,x2);  
	main_W_com_data(0x53,y2);   
	LCD_Write_COM(0x22);           				 
}
void ili9325_24_0_address_set(unsigned int x1, unsigned int y1, unsigned int x2,
		unsigned int y2) {

		main_W_com_data(TS_INS_START_ADX, x1);
		main_W_com_data(TS_INS_END_ADX, x2);
		main_W_com_data(TS_INS_GRAM_ADX, x1);

		main_W_com_data(TS_INS_START_ADY, y1);
		main_W_com_data(TS_INS_END_ADY, y2);
		main_W_com_data(TS_INS_GRAM_ADY, y1);
		tft_set_pointer(0x22);
}
예제 #3
0
void ITDB02::InitLCD(byte orientation)
{
	orient=orientation;

	*P_RST |= B_RST;
	delay(5); 
	*P_RST &= ~B_RST;
	delay(5);
	*P_RST |= B_RST;
	delay(5);

	*P_CS &= ~B_CS;

	//************* ILI9325C/D **********//
	main_W_com_data(0xE5, 0x78F0);								// set SRAM internal timing
	main_W_com_data(0x01, 0x0100);								// set SS and SM bit
	main_W_com_data(0x02, ITDB02InitValues[0][displaymodel]);	// set 1 line inversion
	main_W_com_data(0x03, 0x1030);								// set GRAM write direction and BGR=1.
	main_W_com_data(0x04, 0x0000);								// Resize register
	main_W_com_data(0x08, 0x0207);								// set the back porch and front porch
	main_W_com_data(0x09, 0x0000);								// set non-display area refresh cycle ISC[3:0]
	main_W_com_data(0x0A, 0x0000);								// FMARK function
	main_W_com_data(0x0C, 0x0000);								// RGB interface setting
	main_W_com_data(0x0D, 0x0000);								// Frame marker Position
	main_W_com_data(0x0F, 0x0000);								// RGB interface polarity
	//*************Power On sequence ****************//
	main_W_com_data(0x10, 0x0000);								// SAP, BT[3:0], AP, DSTB, SLP, STB
	main_W_com_data(0x11, 0x0007);								// DC1[2:0], DC0[2:0], VC[2:0]
	main_W_com_data(0x12, 0x0000);								// VREG1OUT voltage
	main_W_com_data(0x13, 0x0000);								// VDV[4:0] for VCOM amplitude
	main_W_com_data(0x07, 0x0001);
	delay(50); // Dis-charge capacitor power voltage
	main_W_com_data(0x10, ITDB02InitValues[1][displaymodel]);	// SAP, BT[3:0], AP, DSTB, SLP, STB
	main_W_com_data(0x11, 0x0227);								// Set DC1[2:0], DC0[2:0], VC[2:0]
	delay(50); // Delay 50ms
	main_W_com_data(0x12, ITDB02InitValues[2][displaymodel]);	// 0012
	delay(50); // Delay 50ms
	main_W_com_data(0x13, ITDB02InitValues[3][displaymodel]);	// VDV[4:0] for VCOM amplitude
	main_W_com_data(0x29, ITDB02InitValues[4][displaymodel]);	// 04  VCM[5:0] for VCOMH
	main_W_com_data(0x2B, 0x000D);								// Set Frame Rate
	delay(50); // Delay 50ms
	main_W_com_data(0x20, 0x0000);								// GRAM horizontal Address
	main_W_com_data(0x21, 0x0000);								// GRAM Vertical Address
	// ----------- Adjust the Gamma Curve ----------//
	main_W_com_data(0x30, gamma[0][displaymodel]);
	main_W_com_data(0x31, gamma[1][displaymodel]);
	main_W_com_data(0x32, gamma[2][displaymodel]);
	main_W_com_data(0x35, gamma[3][displaymodel]);
	main_W_com_data(0x36, gamma[4][displaymodel]);
	main_W_com_data(0x37, gamma[5][displaymodel]);
	main_W_com_data(0x38, gamma[6][displaymodel]);
	main_W_com_data(0x39, gamma[7][displaymodel]);
	main_W_com_data(0x3C, gamma[8][displaymodel]);
	main_W_com_data(0x3D, gamma[9][displaymodel]);
	//------------------ Set GRAM area ---------------//
	main_W_com_data(0x50, 0x0000);								// Horizontal GRAM Start Address
	main_W_com_data(0x51, 0x00EF);								// Horizontal GRAM End Address
	main_W_com_data(0x52, 0x0000);								// Vertical GRAM Start Address
	main_W_com_data(0x53, 0x013F);								// Vertical GRAM Start Address
	main_W_com_data(0x60, 0xA700);								// Gate Scan Line
	main_W_com_data(0x61, 0x0001);								// NDL,VLE, REV
	main_W_com_data(0x6A, 0x0000);								// set scrolling line
	//-------------- Partial Display Control ---------//
	main_W_com_data(0x80, 0x0000);
	main_W_com_data(0x81, 0x0000);
	main_W_com_data(0x82, 0x0000);
	main_W_com_data(0x83, 0x0000);
	main_W_com_data(0x84, 0x0000);
	main_W_com_data(0x85, 0x0000);
	//-------------- Panel Control -------------------//
	main_W_com_data(0x90, 0x0010);
	main_W_com_data(0x92, ITDB02InitValues[5][displaymodel]);
	main_W_com_data(0x07, 0x0133);								// 262K color and display ON

	*P_CS |= B_CS;

	setColor(255, 255, 255);
	setBackColor(0, 0, 0);
	cfont.font=0;
}
void ili9325_24_0_init() {

	// set global information
	drv_convert_touch_coordinates = ili9325_24_0_convert_touch_coordinates;
	drv_address_set = ili9325_24_0_address_set;
	drv_lcd_rotate = ili9325_24_0_rotate;
	// Return used resolution
	screen_max_x = 319;	// X
	screen_max_y = 239;	// Y

	main_W_com_data(0xE3, 0x3008);
	main_W_com_data(0xE7, 0x0012);
	main_W_com_data(0xEF, 0x1231);

	main_W_com_data(TS_INS_START_OSC, 0x0001); //start oscillator
	NutDelay(50);

	main_W_com_data(TS_INS_DRIV_OUT_CTRL, 0x0000); //set SS, SM
	main_W_com_data(TS_INS_DRIV_WAV_CTRL, 0x0700); //set 1 line inversion

	main_W_com_data(TS_INS_ENTRY_MOD, TS_VAL_ENTRY_MOD); //set GRAM write direction, BGR=0

	main_W_com_data(TS_INS_RESIZE_CTRL, 0x0000); //no resizing

	main_W_com_data(TS_INS_DISP_CTRL2, 0x0202); //front & back porch periods = 2
	main_W_com_data(TS_INS_DISP_CTRL3, 0x0000);
	main_W_com_data(TS_INS_DISP_CTRL4, 0x0000);

	main_W_com_data(TS_INS_RGB_DISP_IF_CTRL1, 0x0000); //select system interface

	main_W_com_data(TS_INS_FRM_MARKER_POS, 0x0000);
	main_W_com_data(TS_INS_RGB_DISP_IF_CTRL2, 0x0000);

	main_W_com_data(TS_INS_POW_CTRL1, 0x0000);
	main_W_com_data(TS_INS_POW_CTRL2, 0x0007);
	main_W_com_data(TS_INS_POW_CTRL3, 0x0000);
	main_W_com_data(TS_INS_POW_CTRL4, 0x0000);

	NutDelay(200);

	main_W_com_data(TS_INS_POW_CTRL1, 0x1690);
	main_W_com_data(TS_INS_POW_CTRL2, 0x0227);

	NutDelay(50);

	main_W_com_data(TS_INS_POW_CTRL3, 0x001A);

	NutDelay(50);

	main_W_com_data(TS_INS_POW_CTRL4, 0x1800);
	main_W_com_data(TS_INS_POW_CTRL7, 0x002A);

	NutDelay(50);

	main_W_com_data(TS_INS_GRAM_HOR_AD, 0x0000);
	main_W_com_data(TS_INS_GRAM_VER_AD, 0x0000);

	main_W_com_data(TS_INS_GAMMA_CTRL1, 0x0007);
	main_W_com_data(TS_INS_GAMMA_CTRL2, 0x0605);
	main_W_com_data(TS_INS_GAMMA_CTRL3, 0x0106);
	main_W_com_data(TS_INS_GAMMA_CTRL4, 0x0206);
	main_W_com_data(TS_INS_GAMMA_CTRL5, 0x0808);
	main_W_com_data(TS_INS_GAMMA_CTRL6, 0x0007);
	main_W_com_data(TS_INS_GAMMA_CTRL7, 0x0201);
	main_W_com_data(TS_INS_GAMMA_CTRL8, 0x0007);
	main_W_com_data(TS_INS_GAMMA_CTRL9, 0x0602);
	main_W_com_data(TS_INS_GAMMA_CTRL10, 0x0808);

	main_W_com_data(TS_INS_HOR_START_AD, 0x0000);
	main_W_com_data(TS_INS_HOR_END_AD, 0x00EF);
	main_W_com_data(TS_INS_VER_START_AD, 0x0000);
	main_W_com_data(TS_INS_VER_END_AD, 0x013F);
	main_W_com_data(TS_INS_GATE_SCAN_CTRL1, 0xA700);
	main_W_com_data(TS_INS_GATE_SCAN_CTRL2, 0x0001);
	main_W_com_data(TS_INS_GATE_SCAN_CTRL3, 0x0000);

	main_W_com_data(TS_INS_PART_IMG1_DISP_POS, 0x0000);
	main_W_com_data(TS_INS_PART_IMG1_START_AD, 0x0000);
	main_W_com_data(TS_INS_PART_IMG1_END_AD, 0x0000);
	main_W_com_data(TS_INS_PART_IMG2_DISP_POS, 0x0000);
	main_W_com_data(TS_INS_PART_IMG2_START_AD, 0x0000);
	main_W_com_data(TS_INS_PART_IMG2_END_AD, 0x0000);

	main_W_com_data(TS_INS_PANEL_IF_CTRL1, 0x0010);
	main_W_com_data(TS_INS_PANEL_IF_CTRL2, 0x0000);
	main_W_com_data(TS_INS_PANEL_IF_CTRL3, 0x0003);
	main_W_com_data(TS_INS_PANEL_IF_CTRL4, 0x0110);
	main_W_com_data(TS_INS_PANEL_IF_CTRL5, 0x0000);
	main_W_com_data(TS_INS_PANEL_IF_CTRL6, 0x0000);

	main_W_com_data(TS_INS_DISP_CTRL1, 0x0133);
}
예제 #5
0
void ITDB02::setXY(word x1, word y1, word x2, word y2)
{
    int tmp;

    if (orient==LANDSCAPE)
    {
        tmp=x1;
        x1=y1;
        y1=disp_y_size-tmp;
        tmp=x2;
        x2=y2;
        y2=disp_y_size-tmp;
        tmp=y1;
        y1=y2;
        y2=tmp;
    }

    switch(display_model)
    {
    case ITDB32:
        main_W_com_data(0x02,x1>>8);  // Column address start2
        main_W_com_data(0x03,x1);		// Column address start1
        main_W_com_data(0x04,x2>>8);  // Column address end2
        main_W_com_data(0x05,x2);		// Column address end1
        main_W_com_data(0x06,y1>>8);  // Row address start2
        main_W_com_data(0x07,y1);		// Row address start1
        main_W_com_data(0x08,y2>>8);  // Row address end2
        main_W_com_data(0x09,y2);		// Row address end1
        LCD_Write_COM(0x22);
        break;
    case ITDB32WC:  // Also TFT01_32W
        LCD_Write_COM(0x2a);
        LCD_Write_DATA(0x00,x1>>8);
        LCD_Write_DATA(0x00,x1);
        LCD_Write_DATA(0x00,x2>>8);
        LCD_Write_DATA(0x00,x2);
        LCD_Write_COM(0x2b);
        LCD_Write_DATA(0x00,y1>>8);
        LCD_Write_DATA(0x00,y1);
        LCD_Write_DATA(0x00,y2>>8);
        LCD_Write_DATA(0x00,y2);
        LCD_Write_COM(0x2c);
        break;
    case ITDB32S:  // Also TFT01_32
        main_W_com_data(0x44,(x2<<8)+x1);
        main_W_com_data(0x45,y1);
        main_W_com_data(0x46,y2);
        main_W_com_data(0x4e,x1);
        main_W_com_data(0x4f,y1);
        LCD_Write_COM(0x22);
        break;
    case TFT01_24:
        main_W_com_data(0x20,x1);	//Setting X
        main_W_com_data(0x21,y1);	//Setting Y
        main_W_com_data(0x50,x1);	//start X
        main_W_com_data(0x52,y1);	//start Y
        main_W_com_data(0x51,x2);	//end X
        main_W_com_data(0x53,y2);	//end Y
        LCD_Write_COM(0x22);
        break;
    }
}
예제 #6
0
void ITDB02::InitLCD(byte orientation)
{
    orient=orientation;

    *P_RST |= B_RST;
    delay(5);
    *P_RST &= ~B_RST;
    delay(15);
    *P_RST |= B_RST;
    delay(15);

    switch(display_model)
    {
    case ITDB32:
        main_W_com_data(0x46,0x00A4);
        main_W_com_data(0x47,0x0053);
        main_W_com_data(0x48,0x0000);
        main_W_com_data(0x49,0x0044);
        main_W_com_data(0x4a,0x0004);
        main_W_com_data(0x4b,0x0067);
        main_W_com_data(0x4c,0x0033);
        main_W_com_data(0x4d,0x0077);
        main_W_com_data(0x4e,0x0012);
        main_W_com_data(0x4f,0x004C);
        main_W_com_data(0x50,0x0046);
        main_W_com_data(0x51,0x0044);

        //240x320 window setting
        main_W_com_data(0x02,0x0000); // Column address start2
        main_W_com_data(0x03,0x0000); // Column address start1
        main_W_com_data(0x04,0x0000); // Column address end2
        main_W_com_data(0x05,0x00ef); // Column address end1
        main_W_com_data(0x06,0x0000); // Row address start2
        main_W_com_data(0x07,0x0000); // Row address start1
        main_W_com_data(0x08,0x0001); // Row address end2
        main_W_com_data(0x09,0x003f); // Row address end1

        // Display Setting
        main_W_com_data(0x01,0x0006); // IDMON=0, INVON=1, NORON=1, PTLON=0
        main_W_com_data(0x16,0x00C8); // MY=0, MX=0, MV=0, ML=1, BGR=0, TEON=0   0048
        main_W_com_data(0x23,0x0095); // N_DC=1001 0101
        main_W_com_data(0x24,0x0095); // PI_DC=1001 0101
        main_W_com_data(0x25,0x00FF); // I_DC=1111 1111

        main_W_com_data(0x27,0x0002); // N_BP=0000 0010
        main_W_com_data(0x28,0x0002); // N_FP=0000 0010
        main_W_com_data(0x29,0x0002); // PI_BP=0000 0010
        main_W_com_data(0x2a,0x0002); // PI_FP=0000 0010
        main_W_com_data(0x2C,0x0002); // I_BP=0000 0010
        main_W_com_data(0x2d,0x0002); // I_FP=0000 0010

        main_W_com_data(0x3a,0x0001); // N_RTN=0000, N_NW=001    0001
        main_W_com_data(0x3b,0x0000); // P_RTN=0000, P_NW=001
        main_W_com_data(0x3c,0x00f0); // I_RTN=1111, I_NW=000
        main_W_com_data(0x3d,0x0000); // DIV=00
        delay(1);
        main_W_com_data(0x35,0x0038); // EQS=38h
        main_W_com_data(0x36,0x0078); // EQP=78h
        main_W_com_data(0x3E,0x0038); // SON=38h
        main_W_com_data(0x40,0x000F); // GDON=0Fh
        main_W_com_data(0x41,0x00F0); // GDOFF

        // Power Supply Setting
        main_W_com_data(0x19,0x0049); // CADJ=0100, CUADJ=100, OSD_EN=1 ,60Hz
        main_W_com_data(0x93,0x000F); // RADJ=1111, 100%
        delay(1);
        main_W_com_data(0x20,0x0040); // BT=0100
        main_W_com_data(0x1D,0x0007); // VC1=111   0007
        main_W_com_data(0x1E,0x0000); // VC3=000
        main_W_com_data(0x1F,0x0004); // VRH=0011

        //VCOM SETTING
        main_W_com_data(0x44,0x004D); // VCM=101 0000  4D
        main_W_com_data(0x45,0x000E); // VDV=1 0001   0011
        delay(1);
        main_W_com_data(0x1C,0x0004); // AP=100
        delay(2);

        main_W_com_data(0x1B,0x0018); // GASENB=0, PON=0, DK=1, XDK=0, VLCD_TRI=0, STB=0
        delay(1);
        main_W_com_data(0x1B,0x0010); // GASENB=0, PON=1, DK=0, XDK=0, VLCD_TRI=0, STB=0
        delay(1);
        main_W_com_data(0x43,0x0080); //set VCOMG=1
        delay(2);

        // Display ON Setting
        main_W_com_data(0x90,0x007F); // SAP=0111 1111
        main_W_com_data(0x26,0x0004); //GON=0, DTE=0, D=01
        delay(1);
        main_W_com_data(0x26,0x0024); //GON=1, DTE=0, D=01
        main_W_com_data(0x26,0x002C); //GON=1, DTE=0, D=11
        delay(1);
        main_W_com_data(0x26,0x003C); //GON=1, DTE=1, D=11

        // INTERNAL REGISTER SETTING
        main_W_com_data(0x57,0x0002); // TEST_Mode=1: into TEST mode
        main_W_com_data(0x95,0x0001); // SET DISPLAY CLOCK AND PUMPING CLOCK TO SYNCHRONIZE
        main_W_com_data(0x57,0x0000); // TEST_Mode=0: exit TEST mode
        //main_W_com_data(0x21,0x0000);
        LCD_Write_COM(0x22);
        break;
    case ITDB32WC:  // Also TFT01_32W
        LCD_Write_COM(0xE9);
        LCD_Write_DATA(0x00,0x20);
        LCD_Write_COM(0x11); //Exit Sleep
        delay(100);
        LCD_Write_COM(0xD1);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0x71);
        LCD_Write_DATA(0x00,0x19);
        LCD_Write_COM(0xD0);
        LCD_Write_DATA(0x00,0x07);
        LCD_Write_DATA(0x00,0x01);
        LCD_Write_DATA(0x00,0x08);
        LCD_Write_COM(0x36);
        LCD_Write_DATA(0x00,0x48);
        LCD_Write_COM(0x3A);
        LCD_Write_DATA(0x00,0x05);
        LCD_Write_COM(0xC1);
        LCD_Write_DATA(0x00,0x10);
        LCD_Write_DATA(0x00,0x10);
        LCD_Write_DATA(0x00,0x02);
        LCD_Write_DATA(0x00,0x02);
        LCD_Write_COM(0xC0); //Set Default Gamma
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0x35);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0x01);
        LCD_Write_DATA(0x00,0x02);
        LCD_Write_COM(0xC5); //Set frame rate
        LCD_Write_DATA(0x00,0x04);
        LCD_Write_COM(0xD2); //power setting
        LCD_Write_DATA(0x00,0x01);
        LCD_Write_DATA(0x00,0x44);
        LCD_Write_COM(0xC8); //Set Gamma
        LCD_Write_DATA(0x00,0x04);
        LCD_Write_DATA(0x00,0x67);
        LCD_Write_DATA(0x00,0x35);
        LCD_Write_DATA(0x00,0x04);
        LCD_Write_DATA(0x00,0x08);
        LCD_Write_DATA(0x00,0x06);
        LCD_Write_DATA(0x00,0x24);
        LCD_Write_DATA(0x00,0x01);
        LCD_Write_DATA(0x00,0x37);
        LCD_Write_DATA(0x00,0x40);
        LCD_Write_DATA(0x00,0x03);
        LCD_Write_DATA(0x00,0x10);
        LCD_Write_DATA(0x00,0x08);
        LCD_Write_DATA(0x00,0x80);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_COM(0x2A);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0xeF);
        LCD_Write_COM(0x2B);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0x00);
        LCD_Write_DATA(0x00,0x01);
        LCD_Write_DATA(0x00,0x8F);
        LCD_Write_COM(0x29); //display on
        LCD_Write_COM(0x2C); //display on
        break;
    case ITDB32S:  // Also TFT01_32
        main_W_com_data(0x00,0x0001);
        main_W_com_data(0x03,0xA8A4);
        main_W_com_data(0x0C,0x0000);
        main_W_com_data(0x0D,0x080C);
        main_W_com_data(0x0E,0x2B00);
        main_W_com_data(0x1E,0x00B7);
        main_W_com_data(0x01,0x2B3F);
        main_W_com_data(0x02,0x0600);
        main_W_com_data(0x10,0x0000);
        main_W_com_data(0x11,0x6070);
        main_W_com_data(0x05,0x0000);
        main_W_com_data(0x06,0x0000);
        main_W_com_data(0x16,0xEF1C);
        main_W_com_data(0x17,0x0003);
        main_W_com_data(0x07,0x0233);
        main_W_com_data(0x0B,0x0000);
        main_W_com_data(0x0F,0x0000);
        main_W_com_data(0x41,0x0000);
        main_W_com_data(0x42,0x0000);
        main_W_com_data(0x48,0x0000);
        main_W_com_data(0x49,0x013F);
        main_W_com_data(0x4A,0x0000);
        main_W_com_data(0x4B,0x0000);
        main_W_com_data(0x44,0xEF00);
        main_W_com_data(0x45,0x0000);
        main_W_com_data(0x46,0x013F);
        main_W_com_data(0x30,0x0707);
        main_W_com_data(0x31,0x0204);
        main_W_com_data(0x32,0x0204);
        main_W_com_data(0x33,0x0502);
        main_W_com_data(0x34,0x0507);
        main_W_com_data(0x35,0x0204);
        main_W_com_data(0x36,0x0204);
        main_W_com_data(0x37,0x0502);
        main_W_com_data(0x3A,0x0302);
        main_W_com_data(0x3B,0x0302);
        main_W_com_data(0x23,0x0000);
        main_W_com_data(0x24,0x0000);
        main_W_com_data(0x25,0x8000);
        main_W_com_data(0x4f,0x0000);
        main_W_com_data(0x4e,0x0000);
        LCD_Write_COM(0x22);
        break;
    case TFT01_24:
        main_W_com_data(0x01, 0x0100); // set Driver Output Control
        main_W_com_data(0x02, 0x0200); // set 1 line inversion
        main_W_com_data(0x03, 0x1030); // set GRAM write direction and BGR=1.
        main_W_com_data(0x04, 0x0000); // Resize register
        main_W_com_data(0x08, 0x0207); // set the back porch and front porch
        main_W_com_data(0x09, 0x0000); // set non-display area refresh cycle ISC[3:0]
        main_W_com_data(0x0A, 0x0000); // FMARK function
        main_W_com_data(0x0C, 0x0000); // RGB interface setting
        main_W_com_data(0x0D, 0x0000); // Frame marker Position
        main_W_com_data(0x0F, 0x0000); // RGB interface polarity
        //*************Power On sequence ****************//
        main_W_com_data(0x10, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
        main_W_com_data(0x11, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
        main_W_com_data(0x12, 0x0000); // VREG1OUT voltage
        main_W_com_data(0x13, 0x0000); // VDV[4:0] for VCOM amplitude
        main_W_com_data(0x07, 0x0001);
        delay(200); // Dis-charge capacitor power voltage
        main_W_com_data(0x10, 0x1690); // SAP, BT[3:0], AP, DSTB, SLP, STB
        main_W_com_data(0x11, 0x0227); // Set DC1[2:0], DC0[2:0], VC[2:0]
        delay(50); // Delay 50ms
        main_W_com_data(0x12, 0x000D); // 0012
        delay(50); // Delay 50ms
        main_W_com_data(0x13, 0x1200); // VDV[4:0] for VCOM amplitude
        main_W_com_data(0x29, 0x000A); // 04  VCM[5:0] for VCOMH
        main_W_com_data(0x2B, 0x000D); // Set Frame Rate
        delay(50); // Delay 50ms
        main_W_com_data(0x20, 0x0000); // GRAM horizontal Address
        main_W_com_data(0x21, 0x0000); // GRAM Vertical Address
        // ----------- Adjust the Gamma Curve ----------//
        main_W_com_data(0x30, 0x0000);
        main_W_com_data(0x31, 0x0404);
        main_W_com_data(0x32, 0x0003);
        main_W_com_data(0x35, 0x0405);
        main_W_com_data(0x36, 0x0808);
        main_W_com_data(0x37, 0x0407);
        main_W_com_data(0x38, 0x0303);
        main_W_com_data(0x39, 0x0707);
        main_W_com_data(0x3C, 0x0504);
        main_W_com_data(0x3D, 0x0808);
        //------------------ Set GRAM area ---------------//
        main_W_com_data(0x50, 0x0000); // Horizontal GRAM Start Address
        main_W_com_data(0x51, 0x00EF); // Horizontal GRAM End Address
        main_W_com_data(0x52, 0x0000); // Vertical GRAM Start Address
        main_W_com_data(0x53, 0x013F); // Vertical GRAM Start Address
        main_W_com_data(0x60, 0xA700); // Gate Scan Line
        main_W_com_data(0x61, 0x0001); // NDL,VLE, REV
        main_W_com_data(0x6A, 0x0000); // set scrolling line
        //-------------- Partial Display Control ---------//
        main_W_com_data(0x80, 0x0000);
        main_W_com_data(0x81, 0x0000);
        main_W_com_data(0x82, 0x0000);
        main_W_com_data(0x83, 0x0000);
        main_W_com_data(0x84, 0x0000);
        main_W_com_data(0x85, 0x0000);
        //-------------- Panel Control -------------------//
        main_W_com_data(0x90, 0x0010);
        main_W_com_data(0x92, 0x0000);
        main_W_com_data(0x07, 0x0133); // 262K color and display ON
        break;
    }

    setColor(255, 255, 255);
    setBackColor(0, 0, 0);
    cfont.font=0;
}