//--------------------------------------------------


/**************************************************/		
// I2C power module controller		
/**************************************************/ 

void DisplayOn()
{
  Set_POWER(1,1,1,1);//1.8V ON, 2.8V ON, 5V ON, BL ON
}
/*
void SystemThread()
{
	Delay(5000);//5000x20us=1.2s

	DCS_Short_Read_NP(0x0a, 1, BUFFER+0);
	if(!memcmp("0x9c")) 
	{
		Delay(1000);
  		Write_LCD_REG(0xFFFC, 0x2003);//Hot start
  		Delay(350);
  		Write_LCD_REG(0xFFFC, 0x2103);
	}

	Read_UART_DAT(0xa0,BUFFER+0);//读回电流表报警状态
	if(memcmp("0x44"))//返回44到Buffer[0] 则电流已经超标
	{
		Delay(1000);
 		Write_LCD_REG(0xFFFC, 0x2003);//Hot start
		Delay(350);
 		Write_LCD_REG(0xFFFC, 0x2103);
	}
}*/

void PowerOffSequence()
{
	Generic_Short_Write_NP(0x28);
	Delay(200);
	Generic_Short_Write_NP(0x10);
	Delay(100);
	Set_STANDBY();//Video transfer stop
	Delay(50);

	Set_RESET(1,0);//MIPI RESET 1, LCD RESET 0
	Delay(50);
	Set_RESET(0,0);//MIPI RESET 0, LCD RESET 0
	Delay(50);

	Set_POWER(1,1,0,1);//1.8V ON, 2.8V ON, 5V OFF, BL ON
	Delay(50);

	Set_BOOST(5.00, 5.00, 0x81, 50);//VDD, VEE, OFF:VDD->VEE, 10ms
	Delay(50);

	Set_POWER(1,0,0,1);//1.8V ON, 2.8V OFF, 5V OFF, BL ON
	Delay(100);
	Set_POWER(0,0,0,0);//1.8V OFF, 2.8V OFF, 5V OFF, BL OFF

}

void main()
{

	
	
	//Delay(100);
	Set_POWER(1,0,0,0);//1.8V ON, 2.8V OFF, 5V OFF, BL OFF
	Delay(100);

	Set_POWER(1,1,1,0);//1.8V ON, 2.8V ON, 5V ON, BL OFF
	Delay(500);

	Set_BOOST(5.00,5.00,0x01,100);
	Delay(100);


	Set_RESET(1,0);//MIPI RESET 1, LCD RESET 0
	Delay(100);
	Set_RESET(1,1);//MIPI RESET 1, LCD RESET 1
	Delay(200);  
   



	SSD_LANE(2,0);
		
	
	/**************************************************/		
	//LCDD (Peripheral) Setting		
      /**************************************************/	

SSD_SEND(0x01,0xFF,0x77,0x01,0x00,0x00,0x13);
SSD_SEND(0x01,0xEF,0x08);
SSD_SEND(0x01,0xFF,0x77,0x01,0x00,0x00,0x10);
SSD_SEND(0x01,0xC0,0xE9,0x03);
SSD_SEND(0x01,0xC1,0x10,0x0C);
SSD_SEND(0x01,0xC2,0x20,0x0A);
SSD_SEND(0x01,0xCC,0x10);
SSD_SEND(0x01,0xB0,0x0F,0x1F,0x28,0x1C,0x13,0x07,0x15,0x0A,0x08,0x2F,0x04,0x13,0x0F,0x2D,0x33,0x1F);
SSD_SEND(0x01,0xB1,0x00,0x1F,0x25,0x0F,0x0F,0x05,0x0D,0x07,0x08,0x23,0x03,0x0E,0x0F,0x27,0x30,0x1F);
SSD_SEND(0x01,0xFF,0x77,0x01,0x00,0x00,0x11);
SSD_SEND(0x01,0xB0,0x4D);
SSD_SEND(0x01,0xB1,0x66);
SSD_SEND(0x01,0xB2,0x84);
SSD_SEND(0x01,0xB3,0x80);
SSD_SEND(0x01,0xB5,0x4A);
SSD_SEND(0x01,0xB7,0x85);
SSD_SEND(0x01,0xB8,0x33);
SSD_SEND(0x01,0xB9,0x00,0x1F);
SSD_SEND(0x01,0xC1,0x78);
SSD_SEND(0x01,0xC2,0x78);
SSD_SEND(0x01,0xD0,0x88);
SSD_SEND(0x01,0xE0,0x00,0x00,0x02);
SSD_SEND(0x01,0xE1,0x06,0xA0,0x08,0xA0,0x05,0xA0,0x07,0xA0,0x00,0x44,0x44);
SSD_SEND(0x01,0xE2,0x30,0x30,0x44,0x44,0x6E,0xA0,0x00,0x00,0x6E,0xA0,0x00,0x00);
SSD_SEND(0x01,0xE3,0x00,0x00,0x33,0x33);
SSD_SEND(0x01,0xE4,0x44,0x44);
SSD_SEND(0x01,0xE5,0x0D,0x69,0x0A,0xA0,0x0F,0x6B,0x0A,0xA0,0x09,0x65,0x0A,0xA0,0x0B,0x67,0x0A,0xA0);
SSD_SEND(0x01,0xE6,0x00,0x00,0x33,0x33);
SSD_SEND(0x01,0xE7,0x44,0x44);
SSD_SEND(0x01,0xE8,0x0C,0x68,0x0A,0xA0,0x0E,0x6A,0x0A,0xA0,0x08,0x64,0x0A,0xA0,0x0A,0x66,0x0A,0xA0);
SSD_SEND(0x01,0xE9,0x36,0x00);
SSD_SEND(0x01,0xEB,0x00,0x01,0xE4,0xE4,0x44,0x88,0x40);
SSD_SEND(0x01,0xED,0xFF,0x45,0x67,0xFA,0x01,0x2B,0xCF,0xFF,0xFF,0xFC,0xB2,0x10,0xAF,0x76,0x54,0xFF);
SSD_SEND(0x01,0xEF,0x10,0x0D,0x04,0x08,0x3F,0x1F);
SSD_SEND(0x01,0xFF,0x77,0x01,0x00,0x00,0x13);
SSD_SEND(0x01,0xE8,0x00,0x0E);
SSD_SEND(0x01,0xFF,0x77,0x01,0x00,0x00,0x00);

SSD_SEND(0x01,0xFF,0x77,0x01,0x00,0x00,0x13);
SSD_SEND(0x01,0xE8,0x00,0x0C);
Delay(10);
SSD_SEND(0x01,0xE8,0x00,0x00);
SSD_SEND(0x01,0xFF,0x77,0x01,0x00,0x00,0x00);
SSD_SEND(0x01,0x35,0x00);
//SSD_SEND(0x01,0x36,0x08);
//SSD_SEND(0x01,0x21,0x00);

DCS_Short_Write_NP(0x11);
Delay(1500);   
DCS_Short_Write_NP(0x29);
Delay(120);

SSD_MODE(0,1);
}
