📄 panel.c
字号:
{0x01, 0x0113, 0},//0x0313
{0x02, 0x0700, 0},
{0x05, 0x1210, 0},
{0x08, 0x0202, 0},
{0x0a, 0x0000, 0},
{0x0b, 0x1800, 0},
{0x0f, 0x0000, 0},
{0x10, 0x0000, 0},
{0x14, 0x9f00, 0},
{0x15, 0x9f00, 0},
{0x16, 0x7f00, 0},
{0x17, 0x9f00, 0},
{0x23, 0x0000, 0},
{0x24, 0x0000, 0},
{0x25, 0x0000, 0},
{0x26, 0x0000, 0},
{0x0d, 0x0000, 15},
{0x0e, 0x0000, 15},
{0x07, 0x0000, 15},
{0x0c, 0x0000, 15},
// power setting flow
{0x09, 0x0008, 15},
{0x0d, 0x0002, 15},
{0x0e, 0x141b, 50},
{0x0d, 0x0012, 15},
{0x03, 0x0010, 50},
{0x09, 0x0000, 15},
{0x03, 0x0310, 15},
{0x0e, 0x341b, 150},
{0x09, 0x0004, 15},
{0x0d, 0x0012, 50},
//initial Function 2
{0x21, 0x0000, 0},
{0x30, 0x0001, 0},
{0x31, 0x0505, 0},
{0x32, 0x0305, 0},
{0x33, 0x0100, 0},
{0x34, 0x0303, 0},
{0x35, 0x0403, 0},
{0x36, 0x0507, 0},
{0x37, 0x0000, 0},
{0x3a, 0x0800, 0},
{0x3b, 0x0007, 10},
//display on function
{0x07, 0x0005, 40},
{0x07, 0x0025, 0},
{0x07, 0x0027, 40},
{0x07, 0x0037, 10}
};
LCDParm MLcdParm =
{
{ sizeof(gMPanel_powon) / sizeof(LCDReg), (PLCDReg)&gMPanel_powon}, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if QIDISAIFU_S1D19105D
/*******************************************************
driver ic bias size
mainpanel: S1D19105D_16 (0x0,0x0) 176*220
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSHigh((UINT16)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT16)adr);
return;
}
V5_BySetRSLow((UINT16)adr);
V5_BySetRSHigh((UINT16)val);
}
const LCDReg gMPanel_powon[] =
{
{0x9600, 0xffff, 10},//VOSC ON
{0x9200, 0xffff, 0},//START OSCILLATION
{0x3100, 0x1000, 0},//display interface set
{0xffff, 0x0000, 0},
{0x6f00, 0x0200, 0},//gate line scan
{0xffff, 0x0000, 0},
{0xffff, 0xdb00, 0},
{0xbc00, 0x0000, 0},//data set
{0xca00, 0x0000, 0},//display set
{0xffff, 0x3800, 0},
{0xffff, 0xc000, 0},
{0xffff, 0x4300, 0},
{0xffff, 0xdb00, 0},
{0xffff, 0x0000, 0},
{0xffff, 0x0700, 0},
{0xffff, 0x0700, 0},
{0xffff, 0x0000, 0},
{0xa100, 0x0200, 0}, //display time set
{0xffff, 0x3600, 0},
{0xffff, 0x0400, 0},
{0xffff, 0x3400, 0},
{0xffff, 0x0000, 0},
{0xffff, 0x0000, 0},
{0xffff, 0x0900, 0},
{0x2000, 0x1700, 0}, //electron volume set
{0xffff, 0x1000, 0},
{0xffff, 0x1000, 0},
{0xffff, 0x1a00, 0},
{0xffff, 0x1e00, 0},
{0xffff, 0x1600, 0},
{0xffff, 0x0000, 0},
{0xffff, 0x0300, 0},
{0x2100, 0x3100, 0}, //power control set
{0xffff, 0x3300, 0},
{0xffff, 0x0e00, 0},
{0xffff, 0x0f00, 0},
{0xffff, 0xad00, 0},
{0xffff, 0xa000, 0},
{0xffff, 0x7700, 0},
{0xffff, 0xa500, 0},
{0xffff, 0x0100, 0},
{0xffff, 0xa500, 0},
{0xffff, 0x0100, 0},
{0xffff, 0x4400, 0},
{0xffff, 0x7700, 0},
{0x8c00, 0x0100, 0}, //ac operation drive line inversion
{0xffff, 0x0000, 0},
{0x8b00, 0x0000, 0}, //display mide set
{0xffff, 0x0000, 0},
{0xffff, 0x7000, 0},
{0xffff, 0x6500, 0},
{0x2200, 0x3200, 0}, //gamma correction set
{0xffff, 0x0000, 0},
{0xffff, 0x4400, 0},
{0xffff, 0x4400, 0},
{0xffff, 0x4400, 0},
{0xffff, 0x4400, 0},
{0x2300, 0x0300, 0}, //partial power set
{0xffff, 0x6500, 0},
{0xffff, 0x0f00, 0},
{0xffff, 0xad00, 0},
{0xffff, 0xa000, 0},
{0xffff, 0x4400, 0},
{0xffff, 0x7700, 0},
{0x9400, 0xffff, 0},//sleep out
{0x1500, 0x0000, 0},//start address set
{0xffff, 0x0000, 0},
{0x7500, 0xaf00, 0},//end address set
{0xffff, 0xdb00, 0},
{0xa900, 0xffff, 0},//partial display out
{0xaf00, 0xffff, 0},//display on
//{0x5c00, 0x0000, 10},//end address set
};
LCDParm MLcdParm =
{
{ sizeof(gMPanel_powon) / sizeof(LCDReg), (PLCDReg)&gMPanel_powon}, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if XiKe_LTS166QQF03
/*******************************************************
driver ic bias size
mainpanel: uPD161963 (0x0,0x0) 128*160
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSHigh((UINT16)val>>8);
V5_BySetRSHigh((UINT8)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT16)adr>>8);
V5_BySetRSLow((UINT16)adr);
return;
}
V5_BySetRSLow((UINT16)adr>>8);
V5_BySetRSLow((UINT8)adr);
V5_BySetRSHigh((UINT16)val>>8);
V5_BySetRSHigh((UINT8)val);
}
const LCDReg gMPanel_powon[] =
{
#if 1
//POWER setting sequence
{0x11, 0x0210, 0},
{0x12, 0x0001, 0},
{0x13, 0x0818, 0},
{0x14, 0x0013, 0},
{0x10, 0x1910, 80},
{0x13, 0x081d, 400},
//initializing sequence
{0x01, 0x090c, 0},
{0x02, 0x0200, 0},
{0x03, 0x1030, 0},
{0x07, 0x0005, 0},
{0x08, 0x0503, 0},
{0x0b, 0x0003, 0},
{0x0c, 0x0000, 0},
{0x30, 0x0403, 0},
{0x31, 0x0003, 0},
{0x32, 0x0000, 0},
{0x33, 0x0100, 0},
{0x34, 0x0706, 0},
{0x35, 0x0206, 0},
{0x36, 0x0507, 0},
{0x37, 0x0304, 0},
{0x38, 0x0600, 0},
{0x40, 0x0000, 0},
{0x42, 0x9f00, 0},
{0x43, 0x0000, 0},
{0x44, 0x7f00, 0},
{0x45, 0x9f00, 0},
{0x6c, 0x0001, 0},
// display off status
//{0x07, 0x0032, 80},
//{0x07, 0x0022, 80},
//{0x07, 0x0000, 80},
//display on sequence
{0x07, 0x0001, 80},
{0x07, 0x0021, 0},
{0x07, 0x0023, 80},
{0x07, 0x0037, 80},
{0x21, 0x0000, 0},
#else//lts182qq
//POWER setting sequence
{0x11, 0x1f1e, 0},
{0x38,0x0f0f,0},
{0x12, 0x0001, 0},
{0x13, 0x0808, 0},
{0x14, 0x311a, 0},
{0x10, 0x1a10, 80},
{0x13, 0x081b, 400},
//initializing sequence
{0x01, 0x090c, 0},
{0x02, 0x0200, 0},
{0x03, 0x1030, 0},
{0x07, 0x0005, 0},
{0x08, 0x0202, 0},
{0x0b, 0x0006, 0},
{0x0c, 0x0000, 0},
{0x30, 0x0606, 0},
{0x31, 0x0606, 0},
{0x32, 0x0305, 0},
{0x33, 0x0002, 0},
{0x34, 0x0503, 0},
{0x35, 0x0606, 0},
{0x36, 0x0606, 0},
{0x37, 0x0200, 0},
{0x11, 0x1f1e, 0},
{0x38, 0x0f0f, 0},
{0x40, 0x0000, 0},
{0x42, 0x9f00, 0},
{0x43, 0x0000, 0},
{0x44, 0x7f00, 0},
{0x45, 0x9f00, 0},
{0x6f, 0x1d00, 0},
{0x70, 0x0003, 0},
// display off status
//{0x07, 0x0032, 80},
//{0x07, 0x0022, 80},
//{0x07, 0x0000, 80},
//display on sequence
{0x07, 0x0001, 80},
{0x07, 0x0021, 0},
{0x07, 0x0023, 80},
{0x07, 0x0037, 80},
{0x21, 0x0000, 0},
#endif
};
LCDParm MLcdParm =
{
{ sizeof(gMPanel_powon) / sizeof(LCDReg), (PLCDReg)&gMPanel_powon}, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if XiKe_UPD161690
/*******************************************************
driver ic bias size
mainpanel: UPD161690_8BIT (0x0,0x0) 128*160
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSHigh((UINT8)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT8)adr);
return;
}
V5_BySetRSLow((UINT8)adr);
V5_BySetRSHigh((UINT8)val);
}
const LCDReg gMPanel_powon[] =
{
#if 0
{0x20, 0x01, 50},
{0x02, 0x01, 50},
{0x20, 0x08, 20},
{0x20, 0x0F, 20},//0x0f
{0x00, 0x00, 20},
{0x01, 0x20, 20},
{0x06, 0x00, 20},
{0x25, 0x02, 20},//0
{0x00, 0x40, 20},
{0x03, 0x00, 20},
{0x05, 0x00, 20},
#else
{0x21, 0x20, 2},
{0x02, 0x01, 2},
{0x20, 0x01, 2},
{0x20, 0x03, 2},
{0x20, 0x07, 2},
{0x20, 0x0f, 2},//0x0f
{0x21, 0x21, 2},
{0x21, 0x23, 2},
{0x21, 0x27, 2},
{0x24, 0xf7, 2}, //c1
{0x25, 0x50, 2}, //f3
{0x26, 0x01, 2}, //
{0x29, 0x30, 2}, //30
{0x00, 0x00, 20},
{0x01, 0x20, 2},
{0x06, 0x00, 2},//
//{0x25, 0x00, 2},//0
{0x00, 0x40, 2},
{0x03, 0x00, 2},
{0x05, 0x00, 2},
#endif
};
LCDParm MLcdParm =
{
{ sizeof(gMPanel_powon) / sizeof(LCDReg), (PLCDReg)&gMPanel_powon}, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if Demo_Truly_GG3216UTSW
/*******************************************************
driver ic bias size
mainpanel: S6D0110 (0x0,0x0) 128*160
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSHigh((UINT16)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT16)adr);
return;
}
V5_BySetRSLow((UINT16)adr);
V5_BySetRSHigh((UINT16)val);
}
const LCDReg gMPanel_powon[] =
{
{0x0000,0x0001,20},
{0x0007,0x0104,20},
{0x000D,0x0206,20}, //0x0202
{0x000E,0x0A19,20},
{0x0001,0x0113,20},
{0x0002,0x0700,20},
{0x0005,0x1230,20},
{0x000B,0x4000,20},
{0x000C,0x0000,20},
{0x0003,0x0008,20},
{0x0004,0x0000,20},
{0x000E,0x2c19,20}, //0x2c19
{0x000D,0x0212,20},//0x0212
{0x0030,0x0505,20},//
{0x0031,0x0505,20},
{0x0032,0x0505,20},
{0x0033,0x0205,20},
{0x0034,0x0202,20},
{0x0035,0x0202,20},
{0x0036,0x0202,20},
{0x0037,0x0502,20},
{0x003A,0x0005,20},
{0x003B,0x0000,20},
/* CUSTOME code ,also samsung recommend,have verticol lines in black pattern
{0x0030,0x0700,20},//
{0x0031,0x0007,20},
{0x0032,0x0000,20},
{0x0033,0x0100,20},
{0x0034,0x0707,20},
{0x0035,0x0007,20},
{0x0036,0x0700,20},
{0x0037,0x0001,20},
{0x003A,0x1800,20},
{0x003B,0x0007,20},
*/
{0x000F,0x0000,20},
{0x0011,0x0000,20},
{0x0014,0x5C00,20},
{0x0015,0x9F5D,20},
{0x0016,0x7F00,20},
{0x0017,0x9F00,20},
{0x0004,0x8000,20}, //0x8000 LG TFT MUST BE 0x8000
{0x0007,0x0105,20},
{0x0007,0x0125,20},
{0x0007,0x0127,20},
{0x0007,0x0137,20},
{0x0021,0x0000,20},
};
LCDParm MLcdParm =
{
{ sizeof(gMPanel_powon) / sizeof(LCDReg), (PLCDReg)&gMPanel_powon}, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if BIRDSM11_S1D19111
/*******************************************************
driver ic bias size
mainpanel: S1D19111_8BIT (0x0,0x0) 176*220
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSHigh((UINT8)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT8)adr);
return;
}
V5_BySetRSLow((UINT8)adr);
V5_BySetRSHigh((UINT8)val);
}
const LCDReg gMPanel_powon[] =
{
{0x96, 0xffff, 10},//VOSC ON
{0x99, 0xffff, 10},
{0x31, 0x00, 0},//display interface set
{0xffff, 0x00, 0},
{0x6f, 0x00, 0},//gate line scan
{0xbc, 0x0000, 0},//data set
{0xca, 0x4a, 0},//display set 0x42
{0xffff, 0x00, 0},
{0xffff, 0xdb, 0},
{0xffff, 0x00, 0},
{0xffff, 0x00, 0},
{0xffff, 0x00, 0},
{0xa1, 0x01, 0}, //display time set
{0xffff, 0x41, 0},
{0xffff, 0x03, 0},
{0xffff, 0x3f, 0},
{0xffff, 0x20, 0},
{0xffff, 0x00, 0},
{0x21, 0x01, 0}, //power control set
{0xffff, 0x24, 0},
{0xffff, 0x0f, 0},
{0xffff, 0x00, 0},
{0xffff, 0x33, 0},
{0xffff, 0x11, 0},
{0xffff, 0xfb, 0},
{0xffff, 0x00, 0},
{0xffff, 0x00, 0},
{0xffff, 0x22, 0},
{0xffff, 0x33, 0},
{0xffff, 0x11, 0},
{0xffff, 0x44, 0},
{0x23, 0x33, 0}, //partial power set
{0xffff, 0xfb, 0},
{0xffff, 0x00, 0},
{0xffff, 0x00, 0},
{0xffff, 0x44, 0},
{0x24, 0x33, 0}, //partial power set
{0xffff, 0x00, 0},
{0xffff, 0x00, 0},
{0xffff, 0x11, 0},
{0xffff, 0x44, 0},
{0x8c, 0x00, 0}, //ac operation drive line inversion
{0x8b, 0x00, 0}, //display mide set
{0xab, 0x00, 0},
{0xa9, 0xffff, 0},//partial display out
{0x20, 0x1b, 0}, //gamma correction set
{0xffff, 0x00, 0},
{0xffff, 0x16, 0},
{0xffff, 0x10, 0},
{0xffff, 0x00, 0},
{0xffff, 0x16, 0},
{0xffff, 0x00, 0},
{0xff, 0x00, 0},
{0xffff, 0x00, 0},
{0xffff, 0x00, 0},
{0xffff, 0x11, 0},
{0x22, 0x03, 0}, //gamma correction set
{0xffff, 0x41, 0},
{0xffff, 0x15, 0},
{0xffff, 0x2a, 0},
{0xffff, 0x37, 0},
{0xffff, 0x07, 0},
{0x25, 0x03, 0},
{0xffff, 0x41, 0},
{0xffff, 0x15, 0},
{0xffff, 0x2a, 0},
{0xffff, 0x37, 0},
{0xffff, 0x07, 0},
{0x94, 0xffff, 60},//sleep out
{0x15, 0x00, 0},//start address set
{0xffff, 0x00, 0},
{0x75, 0xaf, 0},//end address set
{0xffff, 0xdb, 0},
{0xaf, 0xffff, 0},//display on
//{0x5c00, 0x0000, 10},//end address set
};
LCDParm MLcdParm =
{
{ sizeof(gMPanel_powon) / sizeof(LCDReg), (PLCDReg)&gMPanel_powon}, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if TRULY_DEMO_LCD
/*******************************************************
driver ic bias size
mainpanel:S1D19102+S1D17D01 (0x0,0x0) 240*320
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSHigh((UINT16)val<<8);
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -