📄 sys_initial.c
字号:
#include "INC\SYS_DECLARE.H"
#include "INC\SYS_INITIAL.H"
#include "INC\SYS_GLOBAL.H"
#include "INC\SYS_KEY.H"
#include "INC\SYS_IR.H"
#include "INC\SYS_IIC.H"
/****************************************************************************
* Internal function prototype declaretion
***************************************************************************/
void SYS_CPU_Initial(void);
void SYS_Variable_Initial(void);
/****************************************************************************
* Function
***************************************************************************/
void SYS_Initial(void)
{
SYS_CPU_Initial();
SYS_Variable_Initial();
SYS_BacklightPower(0);
SYS_ChipReset();
SYS_Key_Initial();
SYS_IR_Initial();
}
//--------------------------------------------------------------------------
void SYS_CPU_Initial(void)
{
IE = 0; // Disable Interrupt
TMOD = 0x11; // Timer1: 16 bit timer, Timer0: 16 bit timer
IP = 0x07; // Set INT0,INT1,TIMER0 to high priority
TH0 = TIMER0_INIT_VALUE >> 8;
TL0 = TIMER0_INIT_VALUE & 0xFF;
TH1 = 0; // Clear Timer1
TL1 = 0;
TR0 = 1; // Start Timer0, 10 mS fixed timer
TR1 = 0; // Stop Timer1, remote control
IT0 = 0; // Set INT0 to level trigger,Scaler Interrupt
IT1 = 1; // Set INT1 to edge trigger,IR Interrupt
ET0 = 1; // Enable Timer0 interrupt
ET1 = 0; // Disable Timer1 interrupt
EX0 = 0; // Disable INT0 interrupt
EX1 = 0; // Disable INT1 interrupt
CHIPCON = 0x14; // Enable STK601X's XDATA, CPU double clock rate
STK601X_PAD_OPT1 = 0x00;
STK601X_PAD_OPT2 = 0x00;
STK601X_ADC = 0x00; // Disable ADC
STK601X_DA0 = 0x00;
STK601X_DA1 = 0x00;
STK601X_DA2 = 0x00;
STK601X_DA3 = 0x00;
STK601X_DA4 = 0x00;
STK601X_WDT = 0x00; // Disable Watchdog
EA = 1;
}
void SYS_Variable_Initial(void)
{
gfFlowControlInitial = 1;
gbTimer1Sec = 0;
gbOsdPromptTimer = 0;
gbModeDetectTimer = 0;
gbModeDetectCounter = 3;
gScalerPara.fAutoBklitCtrl = 0;
gScalerPara.fBatteryDetect = 0;
gSysInfo.fStopPolling = 0;
}
void SYS_CpuEnterIspMode(void)
{
CHIPCON = 0x10;
STK601X_WDT = 0x00;
IE = 0;
TCON = 0x00;
STK601X_ISP_SLV = 0x2E; // STK6011_ISP_SlaAddr
STK601X_ISP_EN = 0x93; // Keyword to enable ISP
PCON = 0x01; // Enter idle mode to launch ISP
}
//--------------------------------------------------------------------------
void SYS_BacklightPower(BOOL fOnOff)
{
BACKLIGHT_PIN = ~fOnOff;
}
//--------------------------------------------------------------------------
void SYS_ChipReset(void)
{
CHIP_RESETN_PIN = 0;
SYS_Delay_mS(0);
CHIP_RESETN_PIN = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -