📄 init.c
字号:
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 + -