⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 displaylib.c

📁 三星2443芯片
💻 C
📖 第 1 页 / 共 5 页
字号:

	/////////////////////////////////////////////////////////////////////
	// Power Setting 2
	/////////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x1D,0x08);  //

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);
	  
	Write_LDI_LTS222(0x23,0x00);  //  PARTIAL 2 DISPLAY AREA RASTER-ROW NUMBER REGISTER 2
	// delay about 50 us
	delayLoop(LCD_DELAY_50US);
	Write_LDI_LTS222(0x24,0x94);  //  POWER SUPPLY SYSTEM CONTROL REGISTER 1
	// delay about 50 us
	delayLoop(LCD_DELAY_50US);
	Write_LDI_LTS222(0x25,0x6f);  //  POWER SUPPLY SYSTEM CONTROL REGISTER 2

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					


	/////////////////////////////////////////////////////////////////////
	// Power Setting 3
	/////////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x28,0x1e);  // 
	Write_LDI_LTS222(0x1A,0x00);  // 
	Write_LDI_LTS222(0x21,0x10);  //  PARTIAL 1 DISPLAY AREA RASTER-ROW NUMBER REGISTER 2 
	Write_LDI_LTS222(0x18,0x25);  //  PARTIAL 2 DISPLAY AREA STARTING REGISTER 1

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x19,0x48);  //  PARTIAL 2 DISPLAY AREA STARTING REGISTER 2
	Write_LDI_LTS222(0x18,0xe5);  //  PARTIAL 2 DISPLAY AREA STARTING REGISTER 1

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x18,0xF7);  //  PARTIAL 2 DISPLAY AREA STARTING REGISTER 1 

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x1B,0x07);  // org
//	Write_LDI_LTS222(0x1B,0x01);  // 90 rotate
//	Write_LDI_LTS222(0x1B,0x02);  // 90 rotate
//	Write_LDI_LTS222(0x1B,0x03);  // 90 rotate


	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40); 				

	Write_LDI_LTS222(0x1F,0x5a);  // org
//	Write_LDI_LTS222(0x1F,0x5E);  // 90 rotate

	Write_LDI_LTS222(0x20,0x54);  //  org, PARTIAL 1 DISPLAY AREA RASTER-ROW NUMBER REGISTER 1
//	Write_LDI_LTS222(0x20,0x5F);  //  90 rotate, PARTIAL 1 DISPLAY AREA RASTER-ROW NUMBER REGISTER 1

	Write_LDI_LTS222(0x1E,0xc1);  // 

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x21,0x00);  //  PARTIAL 1 DISPLAY AREA RASTER-ROW NUMBER REGISTER 2 
	Write_LDI_LTS222(0x3B,0x01);  // 

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x00,0x20);  //  CONTROL REGISTER 1
	Write_LDI_LTS222(0x02,0x01);  //  RGB INTERFACE REGISTER

	// delay about 10ms
	delayLoop(LCD_DELAY_1MS*10);					
	
//	Reg16_OPCLK_DIV = 0x0201;	 			// 6.4

}


void InitLDI_LTS222_SERIAL(void)
{

	//	LCD module reset
	rGPBDAT |= (1<<(LCD_nRESET));
	rGPBDAT &= ~(1<<(LCD_nRESET)); // goes to LOW
	//	delay about 5ms
	delayLoop(LCD_DELAY_1MS*10);	
	rGPBDAT |= (1<<(LCD_nRESET));  // goes to HIGH


	//	debug_continue = TRUE;
	debug_continue = FALSE;

	//	SET_CONFIG_PORT( spi1)
	rGPLCON &= ~(((3<<(LCD_DEN_BIT*2))) | ((3<<(LCD_DCLK_BIT*2))) | ((3<<(LCD_DSERI_BIT*2))));
	rGPLCON |= (((1<<(LCD_DEN_BIT*2))) | ((1<<(LCD_DCLK_BIT*2))) | ((1<<(LCD_DSERI_BIT*2))));
	//	pull-up pull-down disable
	rGPLUDP &= ~(((3<<(LCD_DEN_BIT*2))) | ((3<<(LCD_DCLK_BIT*2))) | ((3<<(LCD_DSERI_BIT*2))));
	rGPLUDP |= (((2<<(LCD_DEN_BIT*2))) | ((2<<(LCD_DCLK_BIT*2))) | ((2<<(LCD_DSERI_BIT*2))));


	// delay about 10ms
	delayLoop(LCD_DELAY_1MS*10);	

	LCD_DEN_Hi;
	LCD_DCLK_Hi;
	LCD_DSERI_Hi;


	///////////////////////////////////////////////////////////////////
	// Power Setting Function 1
	//////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x22,0x01);	 // PARTIAL 2 DISPLAY AREA RASTER-ROW NUMBER REGISTER 1
	Write_LDI_LTS222(0x03,0x01);	 // RESET REGISTER


	///////////////////////////////////////////////////////////////////
	// Initializing Function 1
	///////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x00,0xa0);	// CONTROL REGISTER 1
	delayLoop(LCD_DELAY_300NS);		// delay about 300ns
	Write_LDI_LTS222(0x01,0x10);	// CONTROL REGISTER 2
	delayLoop(LCD_DELAY_300NS);		// delay about 300ns
	Write_LDI_LTS222(0x02,0x00);	// RGB INTERFACE REGISTER
	delayLoop(LCD_DELAY_300NS);		// delay about 300ns
	Write_LDI_LTS222(0x05,0x00);	// DATA ACCESS CONTROL REGISTER
	delayLoop(LCD_DELAY_300NS);		// delay about 300ns
	Write_LDI_LTS222(0x0D,0x00);	// 

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					


	///////////////////////////////////////////////////////////////////
	// Initializing Function 2
	///////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x0E,0x00);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x0F,0x00);	 // 
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x10,0x00);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x11,0x00);  //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x12,0x00);  //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns 
	Write_LDI_LTS222(0x13,0x00);  // DISPLAY SIZE CONTROL REGISTER
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x14,0x00);  // PARTIAL-OFF AREA COLOR REGISTER 1
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x15,0x00);  // PARTIAL-OFF AREA COLOR REGISTER 2
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x16,0x00);  // PARTIAL 1 DISPLAY AREA STARTING REGISTER 1
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x17,0x00);  // PARTIAL 1 DISPLAY AREA STARTING REGISTER 2
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x34,0x01);  // POWER SUPPLY SYSTEM CONTROL REGISTER 14
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x35,0x00);  // POWER SUPPLY SYSTEM CONTROL REGISTER 7

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);


	////////////////////////////////////////////////////////////////////
	// Initializing Function 3
	////////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x8D,0x01);	 //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x8B,0x28);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x4B,0x00);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x4C,0x00);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x4D,0x00);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x4E,0x00);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x4F,0x00);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x50,0x00);	 //  ID CODE REGISTER 2 						Check it out

	// delay about 50 us
	delayLoop(LCD_DELAY_50US);

	Write_LDI_LTS222(0x86,0x00);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x87,0x26);	 //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x88,0x02);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x89,0x05);	 //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x33,0x01);	 //  POWER SUPPLY SYSTEM CONTROL REGISTER 13
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x37,0x06);	 //  POWER SUPPLY SYSTEM CONTROL REGISTER 12		Check it out

	// delay about 50 us
	delayLoop(LCD_DELAY_50US);

	Write_LDI_LTS222(0x76,0x00);	 //  SCROLL AREA START REGISTER 2

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);


	/////////////////////////////////////////////////////////////////////
	// Initializing Function 4
	/////////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x42,0x00);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x43,0x00);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x44,0x00);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x45,0x00);  //  CALIBRATION REGISTER
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x46,0xef);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x47,0x00);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x48,0x00);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x49,0x01);  //  ID CODE REGISTER 1							check it out

	// delay about 50 us
	delayLoop(LCD_DELAY_50US);

	Write_LDI_LTS222(0x4A,0x3f);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x3C,0x00);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x3D,0x00);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x3E,0x01);  //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x3F,0x3f);  //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x40,0x01);  //	horizontal back porch	 //050105 Boaz.Kim
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x41,0x0a);  //	horizontal back porch	//050105 Boaz.Kim
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x8F,0x05);  //

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);

	/////////////////////////////////////////////////////////////////////
	// Initializing Function 5
	/////////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x90,0x05);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x91,0x44);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x92,0x44);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x93,0x44);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x94,0x33);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x95,0x05);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x96,0x05);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x97,0x44);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x98,0x44);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x99,0x44);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x9A,0x33);  //  
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x9B,0x33);  //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns
	Write_LDI_LTS222(0x9C,0x33);  //
	delayLoop(LCD_DELAY_300NS);  // delay about 300ns

	Write_LDI_LTS222(0x9D,0x81);  //	6bit RGB

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);


	/////////////////////////////////////////////////////////////////////
	// Power Setting 2
	/////////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x1D,0x08);  //

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);
	  
	Write_LDI_LTS222(0x23,0x00);  //  PARTIAL 2 DISPLAY AREA RASTER-ROW NUMBER REGISTER 2
	// delay about 50 us
	delayLoop(LCD_DELAY_50US);
	Write_LDI_LTS222(0x24,0x94);  //  POWER SUPPLY SYSTEM CONTROL REGISTER 1
	// delay about 50 us
	delayLoop(LCD_DELAY_50US);
	Write_LDI_LTS222(0x25,0x6f);  //  POWER SUPPLY SYSTEM CONTROL REGISTER 2

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					


	/////////////////////////////////////////////////////////////////////
	// Power Setting 3
	/////////////////////////////////////////////////////////////////////
	Write_LDI_LTS222(0x28,0x1e);  // 
	Write_LDI_LTS222(0x1A,0x00);  // 
	Write_LDI_LTS222(0x21,0x10);  //  PARTIAL 1 DISPLAY AREA RASTER-ROW NUMBER REGISTER 2 
	Write_LDI_LTS222(0x18,0x25);  //  PARTIAL 2 DISPLAY AREA STARTING REGISTER 1

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x19,0x48);  //  PARTIAL 2 DISPLAY AREA STARTING REGISTER 2
	Write_LDI_LTS222(0x18,0xe5);  //  PARTIAL 2 DISPLAY AREA STARTING REGISTER 1

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x18,0xF7);  //  PARTIAL 2 DISPLAY AREA STARTING REGISTER 1 

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x1B,0x07);  // org
//	Write_LDI_LTS222(0x1B,0x01);  // 90 rotate
//	Write_LDI_LTS222(0x1B,0x02);  // 90 rotate
//	Write_LDI_LTS222(0x1B,0x03);  // 90 rotate


	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40); 				

	Write_LDI_LTS222(0x1F,0x5a);  // org
//	Write_LDI_LTS222(0x1F,0x5E);  // 90 rotate

	Write_LDI_LTS222(0x20,0x54);  //  org, PARTIAL 1 DISPLAY AREA RASTER-ROW NUMBER REGISTER 1
//	Write_LDI_LTS222(0x20,0x5F);  //  90 rotate, PARTIAL 1 DISPLAY AREA RASTER-ROW NUMBER REGISTER 1

	Write_LDI_LTS222(0x1E,0xc1);  // 

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x21,0x00);  //  PARTIAL 1 DISPLAY AREA RASTER-ROW NUMBER REGISTER 2 
	Write_LDI_LTS222(0x3B,0x01);  // 

	// delay about 40ms
	delayLoop(LCD_DELAY_1MS*40);					

	Write_LDI_LTS222(0x00,0x20);  //  CONTROL REGISTER 1
	Write_LDI_LTS222(0x02,0x01);  //  RGB INTERFACE REGISTER

	// delay about 10ms
	delayLoop(LCD_DELAY_1MS*10);					
	
//	Reg16_OPCLK_DIV = 0x0201;	 			// 6.4

}


#if 0
void InitLDI_LTS222_CPUIF(void)
{

	rVIDCON0 = rVIDCON0 & ~(0x3<<22) | (0x2<<22);
	rSYSIFCON0 |= (1<<2);
	rSIFCCON0 &= ~(1<<1); // RS low
	rSIFCCON0 |= (1<<0); // command mode enable
	
	//	LCD module reset
	rGPBDAT |= (1<<(LCD_nRESET));
	rGPBDAT &= ~(1<<(LCD_nRESET)); // goes to LOW
	//	delay about 5ms
	delayLoop(LCD_DELAY_1MS*10);	
	rGPBDAT |= (1<<(LCD_nRESET));  // goes to HIGH


	//	debug_continue = TRUE;
	debug_continue = FALSE;

	// delay about 10ms
	delayLoop(LCD_DELAY_1MS*10);	

//int i;
//	int	x,y,i;

	/*Main LCD */

	// Power Setting1	

	DISP_CMD_OUT(0x2201);
	Delay(1);					//50us  弥家啊 1 捞扼辑....					
	DISP_CMD_OUT(0x0301);
	Delay(42);					//5ms

	//Initializing Function1
	DISP_CMD_OUT(0x00a0);
	Delay(1);
	DISP_CMD_OUT(0x0110);
	Delay(1);
	DISP_CMD_OUT(0x0200);
	Delay(1);
	DISP_CMD_OUT(0x0510);
//	DISP_CMD_OUT(0x0500);	//boaz.kim, datasheet
	Delay(1);
	DISP_CMD_OUT(0x0d00);

	Delay(400); //boaz.kim			// 40 ms   40000us/120us = 333.33	     HCLK 20Mhz 扁霖


	//Initializing Function2									
	DISP_CMD_OUT(0x0e00);
	Delay(1);
//	DISP_CMD_OUT(0x0f00);
	DISP_CMD_OUT(0x0f01);
	Delay(1);
	DISP_CMD_OUT(0x1000);
	Delay(1);
	DISP_CMD_OUT(0x1100);
	Delay(1);
	DISP_CMD_OUT(0x1200);
	Delay(1);
	DISP_CMD_OUT(0x1300);
	Delay(1);
	DISP_CMD_OUT(0x1400);
	Delay(1);
	DISP_CMD_OUT(0x1500);
	Delay(1);
	DISP_CMD_OUT(0x1600);
	Delay(1);
	DISP_CMD_OUT(0x1700);
	Delay(1);
	DISP_CMD_OUT(0x3401);
	Delay(1);
	DISP_CMD_OUT(0x3500);

	Delay(400);					// 15 ms   15000us/120us = 120	     HCLK 20Mhz 扁霖

	//Initializing Function3
	DISP_CMD_OUT(0x8d01);
	Delay(1);
	DISP_CMD_OUT(0x8b28);
	Delay(1);
	DISP_CMD_OUT(0x4b00);
	Delay(1);
	DISP_CMD_OUT(0x4c00);
	Delay(1);
	DISP_CMD_OUT(0x4d00);
	Delay(1);
	DISP_CMD_OUT(0x4e00);
	Delay(1);
	DISP_CMD_OUT(0x4f00);
	Delay(1);
	DISP_CMD_OUT(0x5000);
	Delay(1);
	DISP_CMD_OUT(0x8600);
	Delay(1);
	DISP_CMD_OUT(0x8726);
	Delay(1);
	DISP_CMD_OUT(0x8802);
	Delay(1);
	DISP_CMD_OUT(0x8905);
	Delay(1);
	DISP_CMD_OUT(0x3301);
	Delay(1);
//	DISP_CMD_OUT(0x3706);
	DISP_CMD_OUT(0x3701);		//modified by kwan. letter
	Delay(1);
	DISP_CMD_OUT(0x7600);
	
	Delay(400);					// 15 ms   15000us/120us = 120	     HCLK 20Mhz 扁霖

	//Initializaing Function4
	DISP_CMD_OUT(0x4200);
	Delay(1);
	DISP_CMD_OUT(0x4300);
	Delay(1);
	DISP_CMD_OUT(0x4400);	
	Delay(1);
	DISP_CMD_OUT(0x4500);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -