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

📄 init.c

📁 支持三星原产的S3C2413开发板
💻 C
📖 第 1 页 / 共 3 页
字号:
	
	LCD_DEN_Hi;
	LCD_DCLK_Hi;
	LCD_DSERI_Hi;
//	LCD_RESET_Hi;

//	LCD_RESET_Hi;	  
	delayLoop(10);
	//delayLoopLoop(1800000);

	///////////////////////////////////////////////////////////////////
	// Init_Lcd_Function
	//////////////////////////////////////////////////////////////////
	WriteLDI_LTS350(0x01,0x001d);	
    WriteLDI_LTS350(0x02,0x0000);    
    WriteLDI_LTS350(0x03,0x0000);    
    WriteLDI_LTS350(0x04,0x0000);
    WriteLDI_LTS350(0x05,0x50a3);
    WriteLDI_LTS350(0x06,0x0000);
    WriteLDI_LTS350(0x07,0x0000);
    WriteLDI_LTS350(0x08,0x0000);
   	WriteLDI_LTS350(0x09,0x0000);
   	WriteLDI_LTS350(0x0a,0x0000);
   	WriteLDI_LTS350(0x10,0x0000);
   	WriteLDI_LTS350(0x11,0x0000);
   	WriteLDI_LTS350(0x12,0x0000);
   	WriteLDI_LTS350(0x13,0x0000);
   	WriteLDI_LTS350(0x14,0x0000);
   	WriteLDI_LTS350(0x15,0x0000);
   	WriteLDI_LTS350(0x16,0x0000);
   	WriteLDI_LTS350(0x17,0x0000);
   	WriteLDI_LTS350(0x18,0x0000);
   	WriteLDI_LTS350(0x19,0x0000);
   	delayLoop(100);
   	//delayLoopLoop(1800000);	
 	///////////////////////////////////////////////////////////////////
	//  Set_PwrOn_Function1
	//////////////////////////////////////////////////////////////////  	
    
    WriteLDI_LTS350(0x09,0x4055);
    WriteLDI_LTS350(0x0a,0x0000);    
    delayLoop(500);
    //delayLoopLoop(1800000);	
	///////////////////////////////////////////////////////////////////
	//  Set_PwrOn_Function2
	//////////////////////////////////////////////////////////////////  	
    
	WriteLDI_LTS350(0x0a,0x2000);
    delayLoop(1000);
	//delayLoopLoop(50*180000);	
	///////////////////////////////////////////////////////////////////
	//  Set_Disp_Function
	//////////////////////////////////////////////////////////////////  	
    
	WriteLDI_LTS350(0x01,0x409d); // note 1
    WriteLDI_LTS350(0x02,0x0204); // note 2    
    WriteLDI_LTS350(0x03,0x2100);
    WriteLDI_LTS350(0x04,0x1000);
    WriteLDI_LTS350(0x05,0x5003);
    WriteLDI_LTS350(0x06,0x0009); // note 3
    WriteLDI_LTS350(0x07,0x000f); // note 3
    WriteLDI_LTS350(0x08,0x0800);
    WriteLDI_LTS350(0x10,0x0000);
    WriteLDI_LTS350(0x11,0x0000);
    WriteLDI_LTS350(0x12,0x000f);
    WriteLDI_LTS350(0x13,0x1f00);
    WriteLDI_LTS350(0x14,0x0000);
    WriteLDI_LTS350(0x15,0x0000);
    WriteLDI_LTS350(0x16,0x0000);
    WriteLDI_LTS350(0x17,0x0000);
    WriteLDI_LTS350(0x18,0x0000);
    WriteLDI_LTS350(0x19,0x0000);
	
	delayLoop(100);
	//delayLoopLoop(50*180000);	
	///////////////////////////////////////////////////////////////////
	//  	 On_Disp_Function
	//////////////////////////////////////////////////////////////////  	 

    WriteLDI_LTS350(0x09,0x4a55);
    WriteLDI_LTS350(0x0a,0x2000);
}

#else

void WriteLDI_LTS222(int address, int data)
{
	volatile S3C2413_IOPORT_REG *s2413IOP = (S3C2413_IOPORT_REG *)OALPAtoVA(S3C2413_BASE_REG_PA_IOPORT, FALSE);
   	int	 j;
	//unsigned char DELAY=100;
	unsigned char DELAY=10;

	LCD_DEN_Hi; 		//	EN = High					CS high
//	LCD_DCLK_Lo;					
	LCD_DCLK_Hi;							//	SCL High
	LCD_DSERI_Lo;							//	Data Low


	delayLoop(DELAY);

	LCD_DEN_Lo; 		//	EN = Low				CS Low
	delayLoop(DELAY);

	LCD_DCLK_Lo;							//	SCL Low

	delayLoop(DELAY);

	for (j = 7; j >= 0; j--)
	{

		if ((address >> j) & 0x0001)	// DATA HIGH or LOW
			LCD_DSERI_Hi;
		else
			LCD_DSERI_Lo;

		delayLoop(DELAY);

		LCD_DCLK_Hi;			// CLOCK = High
		delayLoop(DELAY);

		if(j != 0)
		{
			LCD_DCLK_Lo;
			delayLoop(DELAY);			// CLOCK = Low
		}
	}

	LCD_DSERI_Lo;							// Data Low
	delayLoop(DELAY);

	LCD_DEN_Hi; 		//	EN = High
	delayLoop(DELAY);

	LCD_DEN_Lo; 		//	EN = Low
	delayLoop(DELAY);

	
	LCD_DCLK_Lo;
	delayLoop(DELAY);			// CLOCK = Low
	
	for (j = 7; j >= 0; j--)
	{

		if ((data >> j) & 0x0001)	// DATA HIGH or LOW
			LCD_DSERI_Hi;
		else
			LCD_DSERI_Lo;

		delayLoop(DELAY);

		LCD_DCLK_Hi;			// CLOCK = High
		delayLoop(DELAY);

		if(j != 0)
		{
			LCD_DCLK_Lo;
			delayLoop(DELAY);			// CLOCK = Low
		}
	}

	LCD_DEN_Hi; 				// EN = High
	delayLoop(DELAY);

}

void InitLDI_LTS222(void)
{
	volatile S3C2413_IOPORT_REG *s2413IOP = (S3C2413_IOPORT_REG *)OALPAtoVA(S3C2413_BASE_REG_PA_IOPORT, FALSE);

	SetGPIOforLDI();

#ifdef SMDK2413_REV14
	LCD_RESET_Hi;			// Inserted by J.I 061031
	delayLoop(100);				//
#endif

	LCD_DEN_Hi;
	LCD_DCLK_Hi;
	LCD_DSERI_Hi;
// jylee_20051005
	//LCD_RESET_Hi; // no meanings...

	//LCD CLK is about 4.05Mhz
	//rDIRGBIFR1=(18<<0);  //LCLK=HCLK/(CDR+2)=81/(18+2)=4.05Mhz	
	//rDIRGBIFR0|=(1<<12); //LCD panel on

	// LCD Reset high
// jylee_20051005
	//LCD_RESET_Hi; // no meanings...  
//	delayLoop(50000);

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


	///////////////////////////////////////////////////////////////////
	// Initializing Function 1
	///////////////////////////////////////////////////////////////////
	WriteLDI_LTS222(0x00,0x0a);	 // CONTROL REGISTER 1
	delayLoop(5);  // delay about 300ns
	WriteLDI_LTS222(0x01,0x10);	 // CONTROL REGISTER 2
	delayLoop(5);  // delay about 300ns
//	WriteLDI_LTS222(0x02,0x00);	 // RGB INTERFACE REGISTER
	WriteLDI_LTS222(0x02,0x06);	 // RGB INTERFACE REGISTER
	delayLoop(5);  // delay about 300ns
	WriteLDI_LTS222(0x05,0x00);	 // DATA ACCESS CONTROL REGISTER
	delayLoop(5);  // delay about 300ns
	WriteLDI_LTS222(0x0D,0x00);	 // 

	// delay about 40ms
	// delayLoop(700000);
	delayLoop(7000);		// DonGo


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

	// delay about 30ms
	//delayLoop(500000);
	delayLoop(5000);	// DonGo


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

	// delay about 50 us
	delayLoop(900);

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

	// delay about 50 us
	delayLoop(900);

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

	// delay about 30ms
	//delayLoop(500000);
	delayLoop(5000);	// DonGo 


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

	// delay about 50 us
	delayLoop(900);

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

	// delay about 30ms
	// delayLoop(500000);
	delayLoop(5000);	// DonGo

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

#if 1	
	WriteLDI_LTS222(0x9D,0x80);  //	16 or 18bit RGB
#else
	WriteLDI_LTS222(0x9D,0x81);  //	6bit RGB
#endif

	// delay about 30ms
	//delayLoop(500000);
	delayLoop(5000);	// DonGo


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

	// delay about 30ms
	//delayLoop(500000);
	delayLoop(5000);		// DonGo
	  
	WriteLDI_LTS222(0x23,0x00);  //  PARTIAL 2 DISPLAY AREA RASTER-ROW NUMBER REGISTER 2
	// delay about 50 us
	delayLoop(900);
	WriteLDI_LTS222(0x24,0x94);  //  POWER SUPPLY SYSTEM CONTROL REGISTER 1
	// delay about 50 us
	delayLoop(900);
	WriteLDI_LTS222(0x25,0x6f);  //  POWER SUPPLY SYSTEM CONTROL REGISTER 2

	// delay about 40ms
	//delayLoop(700000);					
	delayLoop(7000);	// DonGo


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

⌨️ 快捷键说明

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