//***************************************************************
//
//*****    Focus LCDs     *****
//***** LCDs Made Simple  *****
//***** www.FocusLCDs.com *****
//
//***************************************************************
//
//

//NOTE:VCC=3.3V,IOVCC=1.8-3.3V
Display resolution:480*480
params->dsi.vertical_sync_active=4
params->dsi.vertical_backporch=20
params->dsi.vertical_frontporch=10
params->dsi.horizontal_sync_active=8
params->dsi.horizontal_backporch=50
params->dsi.horizontal_frontporch=10
params->RGB_CLOCK=(17)Mhz
Frame Rate=60HZ
/**********************LCD***************************/
void initi(void)
{
   res=1;
   delay(1);
   res=0;
   delay(10);
   res=1;
   delay(200);
//***************************************************************//LCD SETTING
write_command(0x11);
delay(120);
//PAGE0 1
write_command(0xFF); 
write_data(0x77);
write_data(0x01);
write_data(0x00);
write_data(0x00);
write_data(0x10);

write_command(0xC0);//Display Line Setting 
write_data(0x3B);
write_data(0x00);

write_command(0xC1);//Porch Control   
write_data(0x0D);
write_data(0x02);

write_command(0xC2);// Inversion set
write_data(0x37);//31 2-DOT 37-Column
write_data(0x05);

//write_data(0x02); //00-DE MODE ,80-HV MODE	 PCLK N
//write_data(0x00);
//write_data(0x00);

write_command(0xB0);    
write_data(0x00); //Positive Voltage Gamma Control
write_data(0x11);
write_data(0x18);
write_data(0x0E);
write_data(0x11);
write_data(0x06);
write_data(0x07);
write_data(0x08);
write_data(0x07);
write_data(0x22);
write_data(0x04);
write_data(0x12);
write_data(0x0F);
write_data(0xAA);
write_data(0x31);
write_data(0x18);


write_command(0xB1);   
write_data(0x00); //Negative Voltage Gamma Control
write_data(0x11);
write_data(0x19);
write_data(0x0E);
write_data(0x12);
write_data(0x07);
write_data(0x08);
write_data(0x08);
write_data(0x08);
write_data(0x22);
write_data(0x04);
write_data(0x11);
write_data(0x11);
write_data(0xA9);
write_data(0x32);
write_data(0x18);

//*******power set********//
//PAGE2
write_command(0xFF);    
write_data(0x77);
write_data(0x01);
write_data(0x00);
write_data(0x00);
write_data(0x11);

write_command(0xB0);//Vop Amplitude setting
write_data(0x60); //Vop=4.7375v

write_command(0xB1); //VCOM amplitude setting 
write_data(0x26); //VCOM=32

write_command(0xB2); //VGH Voltage setting  
write_data(0x07); //VGH=15v

write_command(0xB3); //TEST Command Setting  
write_data(0x80);

write_command(0xB5); //VGL Voltage setting   
write_data(0x49); //VGL=-10.17v

write_command(0xB7);//Power Control 1    
write_data(0x85);

write_command(0xB8); //Power Control 2  
write_data(0x21); //AVDD=6.6 & AVCL=-4.6

write_command(0xC1);//Source pre_drive timing set1    
write_data(0x78);

write_command(0xC2);//Source EQ2 Setting    
write_data(0x78);
//*********GIP SET*************//
write_command(0xE0);    
write_data(0x00);
write_data(0x1B);
write_data(0x02);

write_command(0xE1);   
write_data(0x08);
write_data(0xA0);
write_data(0x00);
write_data(0x00);
write_data(0x07);
write_data(0xA0);
write_data(0x00);
write_data(0x00);
write_data(0x00);
write_data(0x44);
write_data(0x44);

write_command(0xE2);   
write_data(0x11);
write_data(0x11);
write_data(0x44);
write_data(0x44);
write_data(0xED);
write_data(0xA0);
write_data(0x00);
write_data(0x00);
write_data(0xEC);
write_data(0xA0);
write_data(0x00);
write_data(0x00);

write_command(0xE3);    
write_data(0x00);
write_data(0x00);
write_data(0x11);
write_data(0x11);

write_command(0xE4);    
write_data(0x44);
write_data(0x44);

write_command(0xE5);    
write_data(0x0A);
write_data(0xE9);
write_data(0xD8);
write_data(0xA0);
write_data(0x0C);
write_data(0xEB);
write_data(0xD8);
write_data(0xA0);
write_data(0x0E);
write_data(0xED);
write_data(0xD8);
write_data(0xA0);
write_data(0x10);
write_data(0xEF);
write_data(0xD8);
write_data(0xA0);

write_command(0xE6);    
write_data(0x00);
write_data(0x00);
write_data(0x11);
write_data(0x11);

write_command(0xE7);    
write_data(0x44);
write_data(0x44);

write_command(0xE8);   
write_data(0x09);
write_data(0xE8);
write_data(0xD8);
write_data(0xA0);
write_data(0x0B);
write_data(0xEA);
write_data(0xD8);
write_data(0xA0);
write_data(0x0D);
write_data(0xEC);
write_data(0xD8);
write_data(0xA0);
write_data(0x0F);
write_data(0xEE);
write_data(0xD8);
write_data(0xA0);
 
write_command(0xEB);   
write_data(0x02);
write_data(0x00);
write_data(0xE4);
write_data(0xE4);
write_data(0x88);
write_data(0x00);
write_data(0x40);

write_command(0xEC);    
write_data(0x3C);
write_data(0x00);

write_command(0xED);    
write_data(0xAB);
write_data(0x89);
write_data(0x76);
write_data(0x54);
write_data(0x02);
write_data(0xFF);
write_data(0xFF);
write_data(0xFF);
write_data(0xFF);
write_data(0xFF);
write_data(0xFF);
write_data(0x20);
write_data(0x45);
write_data(0x67);
write_data(0x98);
write_data(0xBA);

//-----------VAP & VAN---------------
write_command(0xFF);    
write_data(0x77);
write_data(0x01);
write_data(0x00);
write_data(0x00);
write_data(0x13);

write_command(0xE5);    
write_data(0xE4);
 
write_command(0xFF);//page     
write_data(0x77);
write_data(0x01);   
write_data(0x00);
write_data(0x00);   
write_data(0x00);
	
write_command(0x36); 
write_data(0x00); //10-180

write_command(0x3A); 
write_data(0x70); //24 bit

//Display on
write_command(0x29);                     
delay(25);

}

//*******************************************
void EnterSleep (void)
{
    write_command(0x28);
    delay(10);
    write_command(0x10);
  
  }

//*********************************************************
void ExitSleep (void)

 {
    write_command(0x11);
    delay(120);
    write_command(0x29);

   }