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

📄 panel.c

📁 中芯微VC0528测试程序
💻 C
📖 第 1 页 / 共 5 页
字号:


#include "..\inc\Panel.h"

//extern void Delay(int time); // 1ms 
typedef void (*LcdSetReg)(UINT8 Status, UINT32 Byte_Length);

#define LCD_POWERON_BYPASS  1
void V5_BySetRSHigh(UINT16 value)
{ 
	*(volatile UINT16 *)0x8000200=value;
}
void V5_BySetRSLow(UINT16 addr)
{
	*(volatile UINT16 *)0x8000000=addr;
}

#if 0
#if GITEK_TFT_HD66773_8
/*******************************************************
			driver ic		bias				size 
mainpanel:HD66773_8		(0x2,0x0)		128*160
********************************************************/
void  MLcdSetReg(int adr,int val)
{
	V5_BySetRSLow(adr>>8);
	V5_BySetRSLow(adr);
	V5_BySetRSHigh(val>>8);
	V5_BySetRSHigh(val);
}
static LCDReg gMLCD_powon[] =
{
	{0x0,	0x0001,	5},
	//power setting 1
	{0xe,	0x1019,	0},
	{0xc,	0x0001,	0},
	{0xd,	0x0404,	0},
	{0x4,	0x8000,	0},
	{0x3b,	0x0602,	0},
	{0x3a,	0x1490,	0},
	//Initfun 1
	{0x7,	0x0104,	0},
	{0x1,	0x0113,	0},
	{0x2,	0x0700,	0},
	{0x5,	0x1030,	0},
	{0x6,	0x0000,	0},
	{0xb,	0x0004, 0},
	{0x3,	0x000c,	5},
	//power setting 2
	{0xe,	0x301a,	0},
	{0xd,	0x0414,	5},
	//Initfun 2
	{0x30,	0x0000,	0},
	{0x31,	0x0000,	0},
	{0x32,	0x0000,	0},
	{0x33,	0x0000,	0},
	{0x34,	0x0000,	0},
	{0x35,	0x0000,	0},
	{0x36,	0x0000,	0},
	{0x37,	0x0000,	0},
      {0xf,	0x0002,	0},
	{0x11,	0x0000,	0},
	{0x14,	0x5c00,	0},
	{0x15,	0x9f00,	0},
	{0x16,	0x8102,	0},
	{0x17,	0x9f00,	0},
	{0x21,	0x0002,	5},
	//display control on
	{0x7,	0x0105,	5},
	{0x7,	0x0125,	5},
	{0x7,	0x0127,	5},
	{0x7,	0x0137,	0},
};
 LCDParm MLcdParm =
{
	{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon },			//power on
	{ 0, NULL },				//stand by
	{ 0, NULL },			//sleep
	{ 0, NULL },				//stand by

};
#endif
#endif
#if LTS180S3_HF1
/*******************************************************
			driver ic		bias				size 
mainpanel:HD66773_16		(0x0,0x0)		128*160
********************************************************/
void  MLcdSetReg(int adr,int val)
{
#if LCD_POWERON_BYPASS
	if(adr==0xffff)
	{
		V5_BySetRSHigh((UINT16)val);
		return;
	}	
	if(val==0xffff)
	{
		V5_BySetRSLow((UINT16)adr);
		return;
	}
	V5_BySetRSLow(adr);
	V5_BySetRSHigh(val);
	//*(volatile UINT16*)(0x8000000) =adr;
	//*(volatile UINT16*)(0x8000200) =val;
#else 
	
	VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_CAMERAON);
	if(adr==0xffff)
	{
		VIM_LCDIF_RsHExW((UINT16)val);
		return;
	}	
	if(val==0xffff)
	{
		VIM_LCDIF_RsLExW((UINT16)adr);
		return;
	}
	VIM_LCDIF_RsLExW(adr);
	VIM_LCDIF_RsHExW(val);
#endif	
	
}
UINT16  MLcdGetReg(int adr)
{
	UINT16 i;
	
	//V5B_LcdifRsLExW(adr);
	//i=V5B_LcdifRsHExR();
	
	return i;
	
}
const LCDReg gMPanel_wakefstd[] =
{
	{0x0,	0x01,	10},
	{0x3,	0x0,	10}
};
const LCDReg gMPanel_stdby[] =
{
	{0x7,	0x137,	0},
	{0x7,	0x136,	40},
	{0x7,	0x126,	40},
	{0x7,	0x4,	0},
	{0x3,	0x7fd,	0}
};
const LCDReg gMPanel_sleep[] =
{
	{0x7,	0x137,	0},
	{0x7,	0x136,	20},
	{0x7,	0x126,	20},
	{0x7,	0x4,	0},
	{0x3,	0x7fe,	0}
}; 
const LCDReg gMPanel_powoff[] =
{
	{0x7,	0x136,	20},
	{0x7,	0x126,	20},
	{0x7,	0x4,	0},
	{0x3,	0x7fc,	0}
};
const LCDReg gMLCD_powon[] =
{
	 {0x7, 0x104, 0},
	 
	 {0xd, 0x0201, 0},//0x100
	 {0xe, 0x0e19, 20},//0x0d18
	 
	 {0x1, 0x113, 0},
	 {0x2, 0x700, 0},
	 {0x5, 0x1230, 0},
	 {0x6, 0x0, 0},
	 {0xb, 0x4008, 0},
	 
	 {0xc, 0x0, 0},
	 {0x3, 0x0508, 0},//0x0008
	 {0x4, 0x0, 20},
	 {0xe, 0x2e19, 0},//0x2d18
	 {0xd, 0x0211, 20},//0x110
	 
	 {0x30, 0x700, 0},
	 {0x31, 0x7, 0},
	 {0x32, 0x0, 0},
	 {0x33, 0x100, 0},
	 {0x34, 0x707, 0},
	 {0x35, 0x7, 0},
	 {0x36, 0x700, 0},
	 {0x37, 0x0001, 0},//0x0007
	 {0x0f, 0x0, 0},
	 {0x11, 0x0, 0},
	 {0x14, 0x5c00, 0},
	 {0x15, 0x9f5d, 0},
	 {0x16, 0x7f00, 0},
	 {0x17, 0x9f00, 0},
	 {0x3a, 0x1800, 0},
	 {0x3b, 0x7,  5},
	 
	 {0x7, 0x105, 20},
	 {0x7, 0x125, 0},
	 {0x7, 0x127, 20},
	 {0x7, 0x137, 0},
	 
	 {0x21, 0x0000, 0}
};
 LCDParm MLcdParm =
{
	{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon },			//power on
	{ sizeof(gMPanel_stdby) / sizeof(LCDReg), (PLCDReg)&gMPanel_stdby },				//stand by
	{ sizeof(gMPanel_sleep) / sizeof(LCDReg), (PLCDReg)&gMPanel_sleep },		//sleep
	{ sizeof(gMPanel_wakefstd) / sizeof(LCDReg), (PLCDReg)&gMPanel_wakefstd },			//wake up

};
LcdSetReg  SLcdSetReg =NULL;
#endif
#if BU_TCL_S6B33B2_CSTN
/*******************************************************
			driver ic		bias				size 
mainpanel:S6B33B2_16		(0x0,0x0)		128*160
********************************************************/

void  MLcdSetReg(int adr,int val)
{
	if(adr==0xffff)
	{
		V5_BySetRSLow((UINT8)val);
		return;
	}	
	if(val==0xffff)
	{
		V5_BySetRSLow((UINT8)adr);
		return;
	}
	V5_BySetRSLow(adr);
	V5_BySetRSLow(val);
}
const LCDReg gMLCD_powon[] =
{
   	{0x2c,	0xffff,	25},			//STANDBY_MODE_OFF
	{0x2,	0x01,	25},		//DD_TURN_OSC_ON
	{0x20,	0x05,	0},		//DD_POWER_ON_POWER_CIRCUIT
	{0x26,	0x1,		50},		//DCDC_AMP_ONOFF
	{0x26,	0x9,		25},
	{0x26,	0xb,		25},
	{0x26,	0xf,		25},
	{0x24,	0x03,	25},
	{0x2a,    0x8c,	25},	//?
	{0x28,	0x02,	0},
	{0x30,	0x1B,	0},
	{0x32,	0x0E,	0},
	{0x34,    0x1f,       0},//?
	{0x40,	0x01,	0},
	{0x10,	0x22,	0},
	{0x42,	0x0,		0},
	{0xffff,	0xa0,	0},
	{0x43,	0x0,		0},
	{0xffff,	0x7f,	0},
	{0x22,	0x11,	0},	
	{0x51,	0xffff,	0}
};
 LCDParm MLcdParm =
{
	{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon },			//power on
	{ 0, NULL },
	{ 0, NULL },			
	{ 0, NULL },		
};
 LcdSetReg  SLcdSetReg =NULL;
#endif

#if BYD_SUNLIGHT_S6B33B2_CSTN
/*******************************************************
			driver ic		bias				size 
mainpanel:S6B33B2_8		(0x0,0x4)		128*160
********************************************************/
void  MLcdSetReg(int adr,int val)
{
	if(adr==0xffff)
	{
		V5_BySetRSLow((UINT8)val);
		return;
	}	
	if(val==0xffff)
	{
		V5_BySetRSLow((UINT8)adr);
		return;
	}
	V5_BySetRSLow((UINT8)adr);
	V5_BySetRSLow((UINT8)val);
}
const LCDReg gMLCD_powon[] =
{
       {0x2c,	0xffff,	25},		
	{0x2,	0x01,	25},	
	{0x20,	0x05,	0},		
	{0x26,	0x1,		50},
	{0x26,	0x9,		25},
	{0x26,	0xb,		25},
	{0x26,	0xf,		25},
	{0x28,	0x00,	0},
	{0x2e,	0xffff,	0},
	{0x45,	0x00,	0},
	{0x53,	0x00,	0},
	{0x10,	0x02,	0},
	{0x24,	0x22,	25},
	{0x30,    0x00,	25},	
	{0x32,    0x0e,       0},
	{0x40,	0x01,	0},
	{0x42,	0x04,	0},
	{0xffff,	0x83,	0},
	{0x43,	0x0,		0},
	{0xffff,	0x7f,	0},
	{0x34,	0x10,	0},
	{0x36,	0x00,	0},
	{0x2a,	0xa0,	0},
	{0x2b,	0x60,	0},
	{0x22,	0x22,	0},	
	{0x55,	0x00,	0},
	{0x56,	0x04,	0},
	{0x57,	0x83,	0},
	{0x59,	0x00,	0},
	{0xffff,	0x04,	0},
	{0xffff,	0x83,	0},
	{0xffff,	0x00,	0},
	{0x51,	0x00,	0},

};
 LCDParm MLcdParm =
{
	{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon },			//power on
	{ 0, NULL },
	{ 0, NULL },			
	{ 0, NULL },		
};
 LcdSetReg  SLcdSetReg =NULL;
#endif

#if TRULY_STEPTECH_LIDES183_CSTN
/*******************************************************
			driver ic		bias				size 
mainpanel:LDS183_16		(0x0,0x0)		128*128
********************************************************/

void  MLcdSetReg(int adr,int val)
{
	if(adr==0xffff)
	{
		V5_BySetRSHigh((UINT8)val);
		return;
	}	
	if(val==0xffff)
	{
		V5_BySetRSLow((UINT8)adr);
		return;
	}
	V5_BySetRSLow(adr);
	V5_BySetRSHigh(val);
}
const LCDReg gMLCD_powon[] =
{
     {0x11, 0xffff, 10},
     {0xba, 0x07,  0},
     {0xffff, 0x18,  0},
     {0xb6, 0x1a,  0}, 
     {0xffff, 0x29,  0},
     {0xffff, 0x38,  0},
     {0xb4, 0x01,  0},
     {0xffff, 0x05,  0},
     {0xffff, 0x11,  0},
     {0xffff, 0x11,  0},
     {0xb5, 0x01,  0},
     {0xffff, 0x04,  0},
     {0xffff, 0x06,  0},
     {0xffff, 0x08,  0},
     {0x2a, 0x00,  0},
     {0xffff, 0x7f,  0},
     {0x29, 0xffff,  0},
     {0x25, 0x54,  0}
};
 LCDParm MLcdParm =
{
	{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon },			//power on
	{ 0, NULL },
	{ 0, NULL },			
	{ 0, NULL },		
};
LcdSetReg  SLcdSetReg =NULL;
#endif

#if PHILIPS_LP8937_LIDES183_CSTN
/*******************************************************
			driver ic		bias				size 
mainpanel:LDS183_8		(0x0,0x0)		128*128
********************************************************/
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 gMLCD_powon[] =
{
     	{0x01,	0xffff,	20},//added by wangrui
	{0x25,	0x3f,	 0},	
	{0x11,	0xffff,	10},
	{0x20,	0xffff,	10},	//added by wangrui
	{0x38,	0xffff,	10},	//added by wangrui
	{0x13,	0xffff,	10},	//added by wangrui
	{0xb4,	0x01,	 0},
       {0xffff,	0x05,	 0},
       {0xffff,	0x09,	 0},
       {0xffff,	0x0c,	 0},
       {0xb5,	0x01,	 0},
       {0xffff,	0x04,	 0},
       {0xffff,	0x06,	 0},
       {0xffff,	0x08,	 0},
       {0xb6,	0x19,	 0}, 
       {0xffff,	0x23,	 0},
       {0xffff,	0x2D,	 0},
       {0xb7,	0x05,	 0}, 
       {0xba,	0x07,	 0},
       {0xffff,	0x24,	 0},
       {0x36,	0x00,	 0},
	{0x3a,	0x05,	0},
	
	{0x2D,	0x01,	 0},
       {0xffff,	0x02,	 0},
       {0xffff,	0x03,	 0},
       {0xffff,	0x04,	 0},
       {0xffff,	0x05,	 0},
       {0xffff,	0x06,	 0},
       {0xffff,	0x07,	 0},
       {0xffff,0x08,	 0},
       {0xffff,	0x09,	 0},
       {0xffff,	0x0A,	 0},
       {0xffff,	0x0B,	 0},
       {0xffff,	0x0C,	 0},
       {0xffff,	0x0D,	 0},
       {0xffff,	0x0E,	 0},
       {0xffff,0x0F,	 0},
       {0xffff,	0x10,	 0},
       {0xffff,	0x11,	 0},
       {0xffff,	0x12,	 0},
       {0xffff,	0x13,	 0},
       {0xffff,	0x14,	 0},
       {0xffff,	0x15,	 0},
       {0xffff,0x16,	 0},
      	{0xffff,	0x17,	 0},
       {0xffff,	0x18,	 0},
       {0xffff,	0x19,	 0},
       {0xffff,	0x1A,	 0},
       {0xffff,	0x1B,	 0},
       {0xffff,	0x1C,	 0},
       {0xffff,0x1D,	 0},
       {0xffff,	0x1E,	 0},
       {0xffff,	0x1F,	 0},
	{0xffff,	0x21,	 0},
       {0xffff,	0x22,	 0},
       {0xffff,	0x23,	 0},
       {0xffff,	0x24,	 0},
       {0xffff,	0x25,	 0},
       {0xffff,	0x26,	 0},
       {0xffff,	0x27,	 0},
       {0xffff,0x28,	 0},
      	{0xffff,	0x29,	 0},
       {0xffff,	0x2A,	 0},
       {0xffff,	0x2B,	 0},
       {0xffff,	0x2C,	 0},
       {0xffff,	0x2D,	 0},
       {0xffff,	0x2E,	 0},
       {0xffff,0x2F,	 0},
      	{0xffff,	0x30,	 0},
     	{0x2a,	0x0,		0},	
	{0xffff,	0x7f,	0},
	{0x2b,	0x0,		0},
	{0xffff,	0x7f,	0},
       {0x29,	0xffff,	0},
       {0x34,	0xffff,	0},
};
 LCDParm MLcdParm =
{
	{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon },			//power on
	{ 0, NULL },
	{ 0, NULL },			
	{ 0, NULL },		
};
LcdSetReg  SLcdSetReg =NULL;
#endif

#if TIANMA_CAPITELS750_S6B33B5
/*******************************************************
			driver ic		bias				size 
mainpanel:PLT2001		(0x0,0x0)		128*160
subpanel: S6B33B5 		(0x0,0x0)		96*96
********************************************************/
void  MLcdSetReg(int adr,int val)
{
	V5_BySetRSLow(adr);
	V5_BySetRSHigh(val);
}
const LCDReg gMLCD_powon[] =
{
	{0x01,	0x02,	100},
	{0x02,	0x12,	100},
	{0x03,	0x60,	100},
	{0x05,	0x08,	100},
	{0x06,	0xc5,	100},
	{0x18,	0x00,	100},
	{0x19,	0x00,	100},
	{0x17,	0x00,	200},
};
 LCDParm MLcdParm =
{
	{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon },			//power on
	{ 0, NULL },
	{ 0, NULL },			
	{ 0, NULL },		
};
 #ifdef V5_TEST_THROUGH
 void  SLcdSetReg(int adr,int val)
{

	if(adr==0xffff)
	{
		V5B_LcdifRsLExW((UINT8)val);
		return;
	}
	if(val==0xffff)
	{
		V5B_LcdifRsLExW((UINT8)adr);
		return;
	}
	V5B_LcdifRsLExW((UINT8)adr);
	V5B_LcdifRsLExW((UINT8)val);
	Delay(20);
}
 #else
  void  SLcdSetReg(int adr,int val)
{

	if(adr==0xffff)
	{
		V5_BySetRSLow((UINT8)val);
		return;
	}
	if(val==0xffff)
	{
		V5_BySetRSLow((UINT8)adr);
		return;
	}
	V5_BySetRSLow((UINT8)adr);
	V5_BySetRSLow((UINT8)val);

}
 #endif
const LCDReg gSPanel_powon[] =
{
	{0x2c,	0xffff,	25},		//standby off
	{0x2,	0x01,	00},		//  25  DD_TURN_OSC_ON ***0x00
	{0x10,	0x15,	0},         //0x02 output mode set
	{0x20,	0x05,	00},		//0x0a  DC-DC select, DD_POWER_ON_POWER_CIRCUI***0x00
	
	{0x26,	0x01,	00},		//50  DCDC_AMP_ONOFF
	{0x26,	0x09,	00},       //25
	{0x26,	0x0b,	00},
	{0x26,	0x0f,	00},
	 {0x28,	0x00,	0},         //0x01
	 {0x2a,    0x9a, 	25},//0xc5,25 //90
	  {0x30,	0x00,	0},//0x0d
	  {0x32,	0x00,	0},//0x0c
	  {0x36,	0x00,	0},//display pattern  set  ;add zhang
	  {0x40,	0x80,	0},//0x01
    
	{0x42,	0x0,	0},
	{0xffff,	0x5f,	0},//96
	{0x43,	0x0,		0},
	{0xffff,0x5f,0},//96
   	{0x45,	0x00,	0},
	{0x51,	0xffff,	0}

};
 LCDParm SLcdParm =
{
	{ sizeof(gSPanel_powon) / sizeof(LCDReg), (PLCDReg)&gSPanel_powon },			//power on
	{ 0, NULL },		
	{ 0, NULL },			
	{ 0, NULL },			
 };
#endif

#if TIANMA_CAPITELS750_SSD1788
/*******************************************************
			driver ic		bias				size 
mainpanel:PLT2001		(0x0,0x0)		128*160
subpanel: SSD1788 		(0x1,0x4)		96*64
********************************************************/
void  MLcdSetReg(int adr,int val)
{
	V5_BySetRSLow(adr);
	V5_BySetRSHigh(val);
}
const LCDReg gMLCD_powon[] =
{
	{0x01,	0x02,	100},
	{0x02,	0x12,	100},
	{0x03,	0x60,	100},
	{0x05,	0x08,	100},
	{0x06,	0xc5,	100},
	{0x18,	0x00,	100},
	{0x19,	0x00,	100},
	{0x17,	0x00,	200},
};
 LCDParm MLcdParm =
{
	{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon },			//power on
	{ 0, NULL },
	{ 0, NULL },			
	{ 0, NULL },		
};
#ifdef V5_TEST_THROUGH
 void  SLcdSetReg(int adr,int val)
{
	if(adr==0xffff)
	{

⌨️ 快捷键说明

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