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

📄 t101_util.c

📁 T118B驱动TFT屏的源程序,已通过编译和调试
💻 C
📖 第 1 页 / 共 3 页
字号:
/****************************************************************************
* File: T101_Util.c                                                         *
* Description: Define T10x chip control policy                              *
* History:     2005/08/12                                                   *
*                                                                           *
* 		Copyright 2005 (c) Terawins Inc.                            *
****************************************************************************/

/****************************************************************************
*                               Include File                                *
****************************************************************************/
#include <reg51.h>
//#include "math.h"
#include "common.h"
#include "SYSTEM.H"
#include "struct.h"
#include "twowire.h"
#include "display.h"
#include "cfgdsply.h"
#include "T515.h"
#include "OSDDRAW.H"
#include "timer0.h"
#include "T101_Util.h"
#include "TW10xReg.h"
#include "keypad.h"
#include "Gamma.h"


///----------------Analog panel----------------------//
#ifdef ANALOG_PANEL
	#ifdef __AU_7_ANALOG__
		#include "AU_7_A.c"
	#elif (defined __PANASONIC_7_ANALOG__)
		#include "PANASONIC_7_A.c"
	#elif (defined __AU_5_6_ANALOG__)
		#include "AU_5_6_A.c"
	#elif (defined __PVI_7_ANALOG__)
		#include "PVI_7_A.c"
	#elif (defined __PVI_9_ANALOG__)
		#include "PVI_9_A.c"
	#elif (defined __LG_7_ANALOG__)
		#include "LG_7_A.c"
	#elif (defined __TOSHIBA_7_ANALOG__)
		#include "TOSHIBA_7_A.c"
	#elif (defined __PVI_10A_ANALOG__)
		#include "PVI_10A_A.c"
	#elif (defined __PVI_10C_ANALOG__)
		#include "PVI_10C_A.c"
	#elif (defined __AU_3_5_ANALOG__)
		#include "AU_3_5_A.c"		
	#elif (defined __CPT_9_ANALOG__)
		#include "CPT_9_A.c"	
	#elif (defined __Sharp_7_ANALOG__)
		#include "Sharp_7_A.c"				
	#elif (defined __TMD_5_8_ANALOG__)
		#include "TMD_5_8_A.c"	
	#elif (defined __PVI_5_ANALOG__)
		#include "PVI_5_A.c"	
	#elif (defined __SANYO_7_ANALOG__)
		#include "SANYO_7_A.c"		
	#elif (defined __PVI_6_2_ANALOG__)
		#include "PVI_6_2_A.c"			
	#elif (defined __CHILIN_10_2_ANALOG__)
		#include "CHILIN_10_2_A.c"		
	#elif (defined __LG_6_5_ANALOG__)
		#include "LG_6_5_A.c"		
	#elif (defined __PVI_3_5_ANALOG__)
		#include "PVI_3_5_A.c"	
	#elif (defined __SAMSUNG_5_ANALOG__)
		#include "SAMSUNG_5_A.c"																								
	#elif (defined __TOPPOLY_2_5_ANALOG__)
		#include "Toppoly_2_5_A.c"			
	#elif (defined __TOPPOLY_1_5_ANALOG__)
		#include "Toppoly_1_5_A.c"																									
	#endif
#else	//digital panel
///----------------Digital panel--------------------//
	#ifdef __AU_7_DIGITAL__
		#include "AU_7_D.c"
	#elif (defined __HITACH_7_DIGITAL__)
		#include "HITACH_7_D.c"
	#elif (defined __HANSTAR_9_DIGITAL__)
		#include "HANSTAR_9_D.c"
	#elif (defined __INCH_10_2_DIGITAL__)
		#include "INCH_10_2_D.c"
	#elif (defined __SHARP_8_DIGITAL__)
		#include "SHARP_8_D.c"
	#elif (defined __TOSHIBA_7_7_DIGITAL__)
		#include "TOSHIBA_7_7_D.c"
	#elif (defined __TOSHIBA_12_DIGITAL__)
		#include "TOSHIBA_12_D.c"
	#elif (defined __AU_12_DIGITAL__)
		#include "AU_12_D.c"
	#elif (defined __INCH_17_DIGITAL__)
		#include "INCH_17_D.c"
	#elif (defined __CMV_10_2_DIGITAL__)
		#include "CMV_10_2_D.c"		
	#elif (defined __CPT_7_DIGITAL__)
		#include "CPT_7_D.c"			
	#elif (defined __CHILIN_10_2_DIGITAL__)
		#include "CHILIN_10_2_D.c"	
	#elif (defined __TopSun_4_DIGITAL__)
		#include "TopSun_4_D.c"		
///---------Digital panel- Serial RGB type------------//
	#elif (defined __CHILIN_2_4_SERIAL__)
		#include "CHILIN_2_4_S.c"
	#elif (defined __AU_2_5_SERIAL__)
		#include "AU_2_5_S.c"			
	#elif (defined __ToppolyTHEB1_2_4_SERIAL__)
	  #include "ToppolyTHEB1_2_4_S.c"
	#endif
#endif //end of Panel Type(analog/digital)

extern uCHAR 	idata 	m_cStandard;
extern uCHAR    idata   m_cChroma;//NTSC  // add by Sherman 06'01'13
extern uCHAR 	idata 	m_cStandard_AA;
extern uCHAR    idata   m_cChroma_AA;//NTSC  // add by Sherman 06'01'13
extern uCHAR 	idata 	m_cStandard_BB;
extern uCHAR    idata   m_cChroma_BB;//NTSC  // add by Sherman 06'01'13
extern uCHAR 	idata 	m_cScaleratio;
extern uWORD 	m_wVRes;      //as computed, used in output and scaling
extern uWORD 	m_wHRes;      //as computed, used in scaling
extern uWORD 	idata 	m_wBuff[3];
extern uCHAR 	idata 	m_cBuff[4];
extern uDWORD	m_dwBuff[2];
extern uWORD 	idata 	m_wVTotal;
extern uCHAR 	idata 	m_cSource;
extern uCHAR 	idata 	m_cSource_AA;
extern uCHAR 	idata 	m_cSource_BB;

extern uCHAR 	idata 	m_cModeStatus;
extern bit m_bPanelClose;	// sm 06/04/10

extern uCHAR 	idata 	m_cBuff_AA[4];
extern uCHAR 	idata 	m_cBuff_BB[4];
//extern uCHAR cSVideo;

extern void ClosePanel(uCHAR uR, uCHAR uG, uCHAR uB);
extern void OpenPanel(void);



uCHAR code ucaSignalStdRegP2[]={
0x0c, 0x18, 0x19, 0x1a, 0x1b, 0x82
};
uCHAR code ucaSignalStdValP2[]={
//NTSC
0x8A, 0x21, 0xf0, 0x7c, 0x0f, 0x42 ,
//PAL
//0x67, 0x2a, 0x09, 0x8a, 0xcb, 0x52 ,
0x67, 0x2a, 0x09, 0x3b, 0xb2, 0x52 ,
//SECAM
0x20/*0x80*/, 0x28, 0xb3, 0x3b, 0xb2, 0x52 , // change by Sherman 
//NTSC 4  // Add by Sherman 06'01'26
0x8a, 0x2a, 0x09, 0x8a, 0xcb, 0x42 ,
//PAL_M	  // Add by Sherman 06'01'26
0x67, 0x21, 0xe6, 0xef, 0xa3, 0x52 ,
//PAL_CN  // Add by Sherman 06'01'26
0x67, 0x21, 0xf6, 0x94, 0x46, 0x52 
};

typedef enum{
		itypeCVBS=0x00,
		itypeSVIDEO,
		itypeYPBPR
}Source_Type;


#if	  (defined T100_DEMOBOARD)
uWORD 	uiaSrcMux[]={
// 0x18,0x19
	0x0000, itypeCVBS, 	// Reserved
	0x000c, itypeCVBS,	// CVBS1
	0x0804, itypeCVBS,	// CVBS1
	0x2008, itypeCVBS,	// CVBS1
	0x1406, itypeSVIDEO,// Svideo0 
	0x0006,	itypeSVIDEO,// Svideo1 
	#ifdef YPbPr
	0x2824, itypeYPBPR,// add by Sherman 06'01'11
	#endif
}; // Input source 5 // set the input mux values here, P0_18, P0_19
#elif (defined T101_DEMOBOARD)
uWORD 	uiaSrcMux[]={
	0x0000,	itypeCVBS, 	// Reserved							
	0x0100, itypeCVBS, 	// CVBS1   // no use                                                     
	0x0000, itypeCVBS, 	// CVBS2                                                
	0x0404, itypeCVBS, 	// CVBS3                                                         
	0x1008, itypeCVBS, 	// CVBS4                                                      
	0x2806,	itypeSVIDEO,// Svideo        
	#ifdef YPbPr
	0x0224,	itypeYPBPR,
	#endif
}; // set the input mux values here, P0_18, P0_19 
#elif (defined T102_DEMOBOARD)
uWORD   uiaSrcMux[]={
	0x0000,	itypeCVBS, 	// Reserved		
	0x0804,	itypeCVBS, 	// CVBS1		
	0x0200,	itypeCVBS, 	// CVBS2		 
	0x0504,	itypeSVIDEO,// Svideo0      
	0x0004,	itypeSVIDEO,// Svideo1     
}; 
#elif (defined T112_DEMOBOARD)    //T118 DEMO
uWORD   uiaSrcMux[]={
	0x0008,	itypeCVBS, 	// Reserved		
	0x0008,	itypeCVBS, 	// CVBS1	
	0x030C,	itypeCVBS,	// YPBPR		 
	0x0048,	itypeCVBS,// Svideo0      	  
	//0x050e,	itypeSVIDEO,// Svideo0      	  
}; 
uWORD   uiaSrcMux_AA[]={
	0x0008,	itypeCVBS, 	// Reserved		
	0x0008,	itypeCVBS, 	// CVBS1	
	0x0008,	itypeCVBS,	// YPBPR		 
	0x0000,	itypeCVBS,// Svideo0      	  
	//0x050e,	itypeSVIDEO,// Svideo0      	  
};
uWORD   uiaSrcMux_BB[]={
	0x0008,	itypeCVBS, 	// Reserved		
	0x0008,	itypeCVBS, 	// CVBS1	
	0x0008,	itypeCVBS,	// YPBPR		 
	0x0000,	itypeCVBS,// Svideo0      	  
	//0x050e,	itypeSVIDEO,// Svideo0      	  
};
#elif (defined CUSTOMER_BOARD)
uWORD 	uiaSrcMux[]={
	0x0000, itypeCVBS, 	// Reserved
	0x000c, itypeCVBS,	// CVBS1
	0x0804, itypeCVBS,	// CVBS1
	0x2008, itypeCVBS,	// CVBS1
	0x1406, itypeSVIDEO,// Svideo0 
	0x0006,	itypeSVIDEO,// Svideo1 
}; // set the input mux values here, P0_18, P0_19
#endif

/****************************************************************************
*      T10x Register No. and values for System and Tcon initial             *
****************************************************************************/
//====== InitT10x Register No. and values
REGADRVAL code stInitT10xP0[]={
    	//adr  		, value
//#if (defined T100A)|(defined T102)    

#ifdef T100
	0x0A		, 0x60,				        //ADC_ROFF		// Change by Sherman 06'01'10
	0x0B		, 0x60,		                //ADC_GOFF		// Change by Sherman 06'01'10
	0x0C		, 0x60,                     //ADC_BOFF	    // Change by Sherman 06'01'10
	0x1A		, 0x87,				        //ADC_AGC_SEL_REG
	0xCA		, DODIV,			        //PLLDIV_O
	0xC2		, 0x12,                     //POUT_VSYNC_CTRL_REG	
	//for image quality                                                 
	0x6C		, 0x80,				        //OP_SAT_REG		
	0x60		, 0x00,                                 //DCTI_BW_REG		
	0x61		, 0x88,//For char clear                 //LUMA_PKCTRL_REG		               
	0x62		, 0x18,//For char clear                 //BP_PKCOEF_REG		              
	0x63		, 0x0F,//For char clear                 //HP_PKCOEF_REG		                
	0x64		, 0x04,//For char clear      	//60    //LP_PKCOEF_REG		                       
	0x66		, 0x88,//For color clear  enable DCTI   //DCTI_GAINCO_REG		             
	0X1C		, 0xb0,                                 //BLANK_SYNCLV_REG	
#else
	0x00		, 0x00,
	0x01		, 0x00,
	0x02		, 0x00,
	0x0A		, 0x80,						// Change by Sherman for Gamma Adjustment 05'12'19
	0x0B		, 0x60,						// Change by Sherman for Gamma Adjustment 05'12'19
	0x0C		, 0x80,
	0x1a		, 0x83,
	0xCA		, 0x02,//DODIV,//0x10|DODIV,       // Change by Sherman 06'01'18
	0xc2		, 0x00,	
	//for image quality        
    0x60		, 0x00,//01,
    0x1c		, 0xc0,
    0x61		, 0x04,
    0x62		, 0x0F,
    0x63		, 0x0F,
    0x64		, 0x04,
    0x66		, 0x88,	
#endif  
	0x97		, 0x93,                                 //CSC_YCOEF_REG		
	0x98		, 0xCC,                                 //CSC_CrRCOEF_REG		
	0x0D		, 0x20,			 	//5     //ADC_GENCTRL_REG		
	0xE0		, 0x92,                                 //PW_MGRCTRL_REG		
	0x11		, 0x1d,                                 //YPbPr_CLPCTRL_REG	
	//Source Select--S Video                                        
	0x18		, 0x00,                                 //ASRC_MUX_REG		
	0x19		, 0x07,                                 //YCbCr_SW_REG		
	//Enable CSC                                                    	
	0x91		, 0x00,                                 //BTIN_PATTERN_REG	
	//DSP Clock                                                     
#ifdef SEQ_MODE  // For sequential mode, bruce, 2006/01/09
	0xCB		, (CPH1_PH | PHASE_DIV),
	0xCC		, (CPH3_PH | CPH2_PH), 
	0xC8		, DFDIV_S,
	0xC9		, DIDIV_S,
	0xCA		, DODIV_S,
#else
	0xC8		, DFDIV_40,                             //PLLDIV_F   
	0xC9		, DIDIV,                                //PLLDIV_I

⌨️ 快捷键说明

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