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

📄 initial.c

📁 T108 LCD屏的DEMO源代码!需要的就下吧
💻 C
字号:
#include <reg51.h>
#include "Common.h"
#include "Global.h"
#include "ICControl.h"
#include "Initial.h"
#include "TxxInitTable.h"
#include "TWICreg.h"
#include "System.h"
#include "OSD1_Define.h"
#include "OSD2_Define.h"
#include "OSD1_Logo.h"
#include "AU_7_a.h"
#include "SRC_ctrl.h"
#include "OSD1CSL.h"
#include "OSD2CSL.h"
#ifdef DEBUG_MODE
#include "com.h" // kenny 20070126
#endif
extern void enablecache(void);
void Initial(void)
{
#ifdef T128
	enablecache();
#endif
	ClosePanel(0, 0x80, 0x80);
	OSD1Disable();
	OSD2Disable();
    SysInit();
	IR_Init();
#ifdef TCON
		TconInit();
#endif
	// kenny 20070126
#ifdef DEBUG_MODE
	UartInit();
	ShowMsg("UART Init'd\n\0");
#endif
	
	//LoadGammaTable(0);	 	
	OSDLogo(); 
	OSD1Init();
	OSD2Init();  


}
void SysInit(void)
{
	P0=0xff;
	P1=0xff;
	P2=0xff;
	P3=0xff;

	//8051Register Set
	IE    	= 0;   	// disable all interrupt
	TMOD 	= 0x11;  // Timer1 Mode 1, Timer0 Mode 1;
	//TMOD 	= 0x01; // Timer0 Mode 1;
  	EX0   	= 0;     // disable external interrupt 0, IE[0]
	EX1		= 0;
  	//ET0 	= 1;   	// enable bTimer 0
  	IT0   	= 0;     // rising endge generate interrupt, TCON[0]
  	INT0 	= 1;
	IT1   	= 1;     // falling endge generate interrupt, TCON[0]
  	INT1 	= 1;

	
#ifdef LOADFILTER
 	LoadFilter(3);//3
#endif

	InitT1xx();
/*#ifdef NVRAM
	#ifdef RESET_EEPROM
		InitEEPRom();
	#else
		EEPLoadPubData();
		OSDLoadALLData();
	#endif
#endif
  */

	m_bPanelClose = 1;
	m_cCurreKey=0;
	m_bBKPowerOn=0;
	m_bKyPowerOn=1;
	m_bChipPowerOn=1;
	//m_cStandard=0xff; //sm061014
	//m_cChroma=0xff;
	m_cStandard=S_NTSC;
	m_cChroma=S_NTSC;
	m_cScaleratio=ScaleFULL;
}

void InitT1xx(void)
{
	
	m_cBuff[0]=0;
	m_cBuff[1]=0;
	m_cBuff[0]=stInitT10xP0[0].ucRegAdr;
	while (m_cBuff[0] != 0xFF)		
	{
		if(m_cBuff[0]==0x30){
			IC_WritByte(TWIC_P0,m_cBuff[0],(IC_ReadByte(TWIC_P0,0x30)|0x01));  // enable Shadow
			IC_WritByte(TWIC_P0,m_cBuff[0],(IC_ReadByte(TWIC_P0,0x30)&(~0x02))| DEINTERLACE); 
		}
		else{
			IC_WritByte(TWIC_P0,m_cBuff[0],stInitT10xP0[m_cBuff[1]].ucRegVal);
		}
		m_cBuff[0]=stInitT10xP0[++m_cBuff[1]].ucRegAdr;
	}

	m_cBuff[1]=0;
	m_cBuff[0]=stInitT10xP1[0].ucRegAdr;
	while (m_cBuff[0] != 0xFF)		
	{
		IC_WritByte(TWIC_P1,m_cBuff[0],stInitT10xP1[m_cBuff[1]].ucRegVal);
		m_cBuff[0]=stInitT10xP1[++m_cBuff[1]].ucRegAdr;
	}

	m_cBuff[1]=0;
	m_cBuff[0]=stInitT10xP2[0].ucRegAdr;
	while (m_cBuff[0] != 0xFF)		
	{
		if(m_cBuff[0]==0x01)
			IC_WritByte(TWIC_P2,m_cBuff[0],(IC_ReadByte(TWIC_P2,0x01)|0x01));// enable black level correction for 10 blank-to-black pedestal
		else
			IC_WritByte(TWIC_P2,m_cBuff[0],stInitT10xP2[m_cBuff[1]].ucRegVal);
		m_cBuff[0]=stInitT10xP2[++m_cBuff[1]].ucRegAdr;
	}
	//=========================================================================
	// Panel specified register settings
	//=========================================================================

	for(m_cBuff[1]=0;m_cBuff[1] < PanelSpecP0Cnt;m_cBuff[1]++)
	{
		IC_WritByte(TWIC_P0,ucaPanelSpecAdrP0[m_cBuff[1]],ucaPanelSpecDataP0[m_cBuff[1]]);
    }


   	for(m_cBuff[1]=0;m_cBuff[1] < PanelSpecP2Cnt;m_cBuff[1]++)
	{
		IC_WritByte(TWIC_P0,ucaPanelSpecAdrP2[m_cBuff[1]],ucaPanelSpecDataP2[m_cBuff[1]]);
    }

/*	#ifdef ROTATE
   		SET_Dismod();
	#endif


	#ifdef IR_DECODE
		IR_Init();
	#endif	  		*/

}
#ifdef TCON
void TconInit(void)
{
	m_cBuff[0]=0;

	for(m_cBuff[0]=0;m_cBuff[0] < P1TconCnt;m_cBuff[0]++)
	       	IC_WritByte(TWIC_P1, TconAddress+m_cBuff[0], TconP1Data[m_cBuff[0]]);
}
#endif
void IR_Init(void)
{
	IC_WritByte(TWIC_P1, 0x40, 0x10);
	IC_WritByte(TWIC_P1, 0x41, 0x3B);
	IC_WritByte(TWIC_P1, 0x47, 0x80);

	// turn on IR intterrupt
	IC_WritByte(TWIC_P0, INTMASK_REG, IC_ReadByte(TWIC_P0, INTMASK_REG) & 0x7F);
	//IC_WritByte(TWIC_P0, INTSTS_REG, IC_ReadByte(TWIC_P0, INTSTS_REG) & 0xFF);
}

⌨️ 快捷键说明

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