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