📄 displaylib.c
字号:
Delay(1);
DISP_CMD_OUT(0x46ef);
Delay(1);
DISP_CMD_OUT(0x4700);
Delay(1);
DISP_CMD_OUT(0x4800);
Delay(1);
DISP_CMD_OUT(0x4901);
Delay(1);
DISP_CMD_OUT(0x4a3f);
Delay(1);
DISP_CMD_OUT(0x3c00);
Delay(1);
DISP_CMD_OUT(0x3d00);
Delay(1);
DISP_CMD_OUT(0x3e01);
Delay(1);
DISP_CMD_OUT(0x3f3f);
Delay(1);
// DISP_CMD_OUT(0x4001);
DISP_CMD_OUT(0x4003); //modified by kwan. letter
Delay(1);
DISP_CMD_OUT(0x410a);
// Delay(1);
// DISP_CMD_OUT(0x8f05);
Delay(400);
//Initializing funtion5
DISP_CMD_OUT(0x8f00); //?????
Delay(1);
DISP_CMD_OUT(0x903f);
Delay(1);
DISP_CMD_OUT(0x9133);
Delay(1);
DISP_CMD_OUT(0x9277);
Delay(1);
DISP_CMD_OUT(0x9377);
Delay(1);
DISP_CMD_OUT(0x9417);
Delay(1);
DISP_CMD_OUT(0x9500);
Delay(1);
DISP_CMD_OUT(0x9600);
Delay(1);
DISP_CMD_OUT(0x9733);
Delay(1);
DISP_CMD_OUT(0x9877);
Delay(1);
DISP_CMD_OUT(0x9977);
Delay(1);
DISP_CMD_OUT(0x9a17);
Delay(1);
DISP_CMD_OUT(0x9b00);
Delay(1);
DISP_CMD_OUT(0x9c00);
Delay(1);
DISP_CMD_OUT(0x9d80);
Delay(400);
// DISP_CMD_OUT(0x1d0f);
//Power Setting2
DISP_CMD_OUT(0x1d08);
Delay(400);
DISP_CMD_OUT(0x2300);
Delay(5);
DISP_CMD_OUT(0x2494);
Delay(5);
DISP_CMD_OUT(0x256f);
Delay(400); // 40ms
//Power Setting3
// DISP_CMD_OUT(0x281e);
DISP_CMD_OUT(0x2810); //modified by kwan. letter
Delay(1);
DISP_CMD_OUT(0x1a00);
Delay(1);
DISP_CMD_OUT(0x2110);
Delay(1);
DISP_CMD_OUT(0x1825);
Delay(400);
// DISP_CMD_OUT(0x1948);
DISP_CMD_OUT(0x1994); //modified by kwan. letter
Delay(1);
DISP_CMD_OUT(0x18e5);
Delay(334); //5ms
DISP_CMD_OUT(0x18f7);
Delay(400);
// DISP_CMD_OUT(0x1b07);
DISP_CMD_OUT(0x1b09); //modified by kwan. letter
Delay(400); //40ms
// DISP_CMD_OUT(0x1f5a);
// DISP_CMD_OUT(0x2054);
DISP_CMD_OUT(0x1f78); //modified by kwan. letter
Delay(1);
DISP_CMD_OUT(0x2045);
Delay(1);
DISP_CMD_OUT(0x1ec1);
Delay(400);
DISP_CMD_OUT(0x2100);
Delay(1);
DISP_CMD_OUT(0x3b01);
Delay(334); //10ms
DISP_CMD_OUT(0x0020);
// DISP_CMD_OUT(0x0201);
Delay(400); //40ms
rSIFCCON0 |= (1<<1); // RS low
rSIFCCON0 &= ~(1<<0); // command mode enable
}
#else
void InitLDI_LTS222_CPUIF(void)
{
rGPCCON = 0x55555555; // Output
rGPCUDP = 0x55555555; // Output
rGPDCON = 0x55555555; // Output
rGPCDAT = 0xffff;
rGPDDAT = 0xffff;
// 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);
/*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);
Delay(1);
DISP_CMD_OUT(0x46ef);
Delay(1);
DISP_CMD_OUT(0x4700);
Delay(1);
DISP_CMD_OUT(0x4800);
Delay(1);
DISP_CMD_OUT(0x4901);
Delay(1);
DISP_CMD_OUT(0x4a3f);
Delay(1);
DISP_CMD_OUT(0x3c00);
Delay(1);
DISP_CMD_OUT(0x3d00);
Delay(1);
DISP_CMD_OUT(0x3e01);
Delay(1);
DISP_CMD_OUT(0x3f3f);
Delay(1);
// DISP_CMD_OUT(0x4001);
DISP_CMD_OUT(0x4003); //modified by kwan. letter
Delay(1);
DISP_CMD_OUT(0x410a);
// Delay(1);
// DISP_CMD_OUT(0x8f05);
Delay(400);
//Initializing funtion5
DISP_CMD_OUT(0x8f00); //?????
Delay(1);
DISP_CMD_OUT(0x903f);
Delay(1);
DISP_CMD_OUT(0x9133);
Delay(1);
DISP_CMD_OUT(0x9277);
Delay(1);
DISP_CMD_OUT(0x9377);
Delay(1);
DISP_CMD_OUT(0x9417);
Delay(1);
DISP_CMD_OUT(0x9500);
Delay(1);
DISP_CMD_OUT(0x9600);
Delay(1);
DISP_CMD_OUT(0x9733);
Delay(1);
DISP_CMD_OUT(0x9877);
Delay(1);
DISP_CMD_OUT(0x9977);
Delay(1);
DISP_CMD_OUT(0x9a17);
Delay(1);
DISP_CMD_OUT(0x9b00);
Delay(1);
DISP_CMD_OUT(0x9c00);
Delay(1);
DISP_CMD_OUT(0x9d80);
Delay(400);
// DISP_CMD_OUT(0x1d0f);
//Power Setting2
DISP_CMD_OUT(0x1d08);
Delay(400);
DISP_CMD_OUT(0x2300);
Delay(5);
DISP_CMD_OUT(0x2494);
Delay(5);
DISP_CMD_OUT(0x256f);
Delay(400); // 40ms
//Power Setting3
// DISP_CMD_OUT(0x281e);
DISP_CMD_OUT(0x2810); //modified by kwan. letter
Delay(1);
DISP_CMD_OUT(0x1a00);
Delay(1);
DISP_CMD_OUT(0x2110);
Delay(1);
DISP_CMD_OUT(0x1825);
Delay(400);
// DISP_CMD_OUT(0x1948);
DISP_CMD_OUT(0x1994); //modified by kwan. letter
Delay(1);
DISP_CMD_OUT(0x18e5);
Delay(334); //5ms
DISP_CMD_OUT(0x18f7);
Delay(400);
// DISP_CMD_OUT(0x1b07);
DISP_CMD_OUT(0x1b09); //modified by kwan. letter
Delay(400); //40ms
// DISP_CMD_OUT(0x1f5a);
// DISP_CMD_OUT(0x2054);
DISP_CMD_OUT(0x1f78); //modified by kwan. letter
Delay(1);
DISP_CMD_OUT(0x2045);
Delay(1);
DISP_CMD_OUT(0x1ec1);
Delay(400);
DISP_CMD_OUT(0x2100);
Delay(1);
DISP_CMD_OUT(0x3b01);
Delay(334); //10ms
DISP_CMD_OUT(0x0020);
// DISP_CMD_OUT(0x0201);
Delay(400); //40ms
rGPCCON = 0xaaaaaaaa; // LCD function
rGPDCON = 0xaaaaaaaa; // LCD function
}
#endif
void Write_LDI_LTS222(int address, int data)
{
int j;
unsigned char DELAY=20;
if(debug_continue)
{
Temp_forDebug(address,data);
}
LCD_DEN_Hi; // EN = High CS high
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);
}
#define LTV350 (TRUE)
void InitLDI_LTV350(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))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -