📄 initial.c
字号:
/****************************************************************************
+----------------------------------------------------------------------+
| Copyright Trumpion Microelectronics Inc. 1999 |
| Trumpion Microelectronics Inc. reserves the right to change products |
| or specifications without notice. |
+----------------------------------------------------------------------+
Project : LCD monitor
Version : 0.94
File Name : initial.c
Functions : power-on initial table and function
Revision :
1999-05-18 OriginalTeam First Created
2000-07-17 Bill Tseng Modified for Zurac-II
****************************************************************************/
//=========================================================================
// include files =
//=========================================================================
#include "lib\extent.h"
#include "lib\wreg516.h"
#include "lib\declare.h"
#include "lib\DEFINE.H"
#include "lib\global.h"
#include "lib\modedata.h"
#include "lib\eeprom.h"
#include "lib\initial.h"
#include "lib\MODEDET.H"
#include "lib\ttfc.h"
#include "lib\osdm.h"
#include "lib\adc.h"
#include "lib\hwmd.h"
#include <intrins.h>
extern void RecallAll(void);
//**************************************************************************
// PROGRAM SECTION
//**************************************************************************
void PowerOnInit(void)
{
Byte i;
PowerDpms(0); // DPMS System-power-off
PowerAdc(0); // ADC power-down
PowerScaler(0); // Zurac power-off
PowerPanel(0); // Panel power-off
PowerBacklight(0); // Backlight power-off
P0 = 0xFF;
PowerLedPower(0); // off Power-LED
PowerLedSleep(0); // off Sleep-LED
InitialCPU();
InitialVariable();
PowerDpms(1); // DPMS System-power-on
ResetAdc(); // Reset ADC
PowerAdc(1); // ADC power-on
PowerScaler(1); // Zurac power-on
TTFC_RSTN_PIN = 0; // Zurac Power-On-Reset
ShortDelay(20);
TTFC_RSTN_PIN = 1;
ShortDelay(2);
// EepromRead(VERSION_NO_ADDR,2);
// if( (TrmBuf[0]!=HIBYTE(VERSION_NO)) || (TrmBuf[1] != LOBYTE(VERSION_NO)) )
// {
// InitialEeprom();
// }
EepromRead(0x200,8);
for(i=0;i<8;i++)
{
if(TrmBuf[i]!=0xFF)
i=50;
}
if(i<20)
{
InitialEeprom();
RecallAll();
}
InitialCheckEeprom(); // Verify EEPROM data
EepromTimingDefault( FREERUN_MODE );
Ttfc(FREERUN_MODE,0); // This is a must. Do not remove it
InitialOsd();
InitialCheckEeprom(); // Double check EEPROM data
#if 0 // initial power off
PowerBacklight(0); // Backlight power-off
PowerDpms(0); // DPMS System-power-off
FgPowerStby = 0;
FgPowerOff = 1;
Delay(125);
#endif
AdcSource(InputSource);
ShortDelay(10);
FreeRunInit();
PowerLedPower(0); // on Power-LED
PowerLedSleep(0); // off Sleep-LED
FgPowerStby = 1;
FgPowerOff = 0;
FgFreeRun = 0;
FgInputKeyFlag = 0;
ModeCounter = 0xFF;
#if ZURAC_HWMD
SyncSource = 0xA3;
HWMD_Init();
Delay(10);
#endif // ZURAC_HWMD
FgKeyFlag=0;
FgMenuChange=0;
FgChangeAuto=0;
FgSaveData=0;
KeyBuffer=0;
RxdBufIndex=0;
FgPowerBurnin=1;
ZuracInitGamma();
#if (INTERNALOSD) //algu 1204
ZuracOsdLoadFont();
#endif
}
/************************************************************************/
/************************************************************************/
void InitialCPU( void )
{
#if ZURAC_HWMD
#if DIGITAL_DOS_MODE
IE = 0; // disable Interrupt
TMOD = 0x11; // Timer 1 : 16 bit timer
// Timer 0 : 16 bit timer
IP = 0x0D; // set INT0,INT1,TIMER1 to high priority
T2CON = 0x02; // Timer 2 : 16 bit counter
TH1 = CLOCK_4096us >> 8;
TL1 = CLOCK_4096us & 0xFF;
TH0 = 0; // clear Timer0
TL0 = 0;
TH2 = 0; // clear Counter2
TL2 = 0;
TR0 = 0; // stop Timer0
TR1 = 1; // start Timer1
TR2 = 0; // stop Counter2
IT0 = 0; // set INT0 to level trigger
IT1 = 1; // set INT1 to eage trigger
ET0 = 0; // disable Timer0 interrupt
ET1 = 1; // enable Timer1 interrupt
ET2 = 0; // disable Counter2 interrupt
EX0 = 1; // enable INT0 interrupt
EX1 = 0; // disable INT1 interrupt
EA = 1;
#else // TONNY Here
IE = 0; // disable Interrupt
TMOD = 0x15; // Timer1 : 16 bit timer
// Timer0 : 16 bit counter
IP = 0x0D; // set INT0,INT1,TIMER1 to high priority
// T2CON = 0; // Timer2 : 16 bit timer
T2CON = 0x34;
SCON = 0x50;
TH1 = CLOCK_4096us >> 8;
TL1 = CLOCK_4096us & 0xFF;
TH0 = 0; // clear Counter0
TL0 = 0;
TH2 = CLOCK_4MS >> 8; // initialize Timer2
TL2 = CLOCK_4MS & 0xFF;
TR0 = 0; // stop Counter0
TR1 = 1; // start Timer1
TR2 = 0; // stop Timer2
IT0 = 1; // set INT0 to eage trigger
ET1 = 1; // enable Timer1 interrupt
ET2 = 0; // disable Timer2 interrupt
EX0 = 1; // enable INT0 interrupt
EA = 1;
#endif
#else
IE = 0; // disable Interrupt
TMOD = 0x15; // Timer 1 : 16 bit timer
// Timer 0 : 16 bit counter
IP = 0x0D; // set INT0,INT1,TIMER1 to high priority
T2CON = 0;
TH1 = CLOCK_4096us >> 8;
TL1 = CLOCK_4096us & 0xFF;
TH0 = 0;
TL0 = 0;
TH2 = CLOCK_4MS >> 8;
TL2 = CLOCK_4MS & 0xFF;
TR0 = 1; // start timer0
TR1 = 1; // start timer1
TR2 = 0; // stop Timer2
IT1 = 1; // set INT1 to eage trigger
ET1 = 1;
ET2 = 1;
EX1 = 1;
EA = 1;
#endif
// TH2 = 0xD9;
// TL2 = 0xFF;
TXD=1;
RXD=1;
SCON=0x50;
RCAP2H = 0xFF;
// RCAP2L = 0xD9;
RCAP2L = 0XF3;
T2CON=0x34;
ES=0;
}
/************************************************************************/
/************************************************************************/
void InitialEeprom(void)
{
Byte i;
Bool Fgtemp;
Fgtemp=FgFacMode;
FgFacMode=1;
for(i=0; i<TOTAL_MODE_NUMBER; i++)
{
EepromTimingDefault(i); // Timing parameter
EepromTimingStore(i);
}
EepromCommonDefault(0); // Common parameter 1
EepromCommonStore(0);
EepromCommonDefault(1); // Common parameter 2
EepromCommonStore(1);
EepromCommonDefault(2); // Common parameter 2
EepromCommonStore(2);
EepromCommonDefault(3); // Common parameter 2
EepromCommonStore(3);
EepromColorDefault(COLOR_9300);
EepromColorStore(COLOR_9300);
EepromColorDefault(COLOR_6500);
EepromColorStore(COLOR_6500);
EepromColorDefault(COLOR_5000);
EepromColorStore(COLOR_5000);
EepromColorDefault(COLOR_USER);
EepromColorStore(COLOR_USER);
TrmBuf[1] = 0x00;
EepromWrite(EE3_UPDATE_USER,1);
FgFacMode = Fgtemp;
}
void InitialCheckEeprom()
{
Byte i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -