?? initial.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"
#ifdef DEBUG_MODE
#include "com.h" // kenny 20070126
#endif
extern void enablecache(void);
void Initial(void)
{
enablecache();
SysInit();
IR_Init();
#ifdef TCON
TconInit();
#endif
// kenny 20070126
#ifdef DEBUG_MODE
UartInit();
ShowMsg("UART Init'd\n\0");
#endif
//LoadGammaTable(0);
OSDLogo();
OSD2Init();
OSD1Init();
}
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;
m_cOSDMenu = 0;
}
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 + -