- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
UiInitial.c
资源名称:SDK_M5661.rar [点击查看]
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:22k
源码类别:
压缩解压
开发平台:
C++ Builder
- /*==========================================================================
- Copyright (c) 2004 ALi Corporation. All Rights Reserved
- File: Initial.c
- content: Default Program Module load by Boot Rom.
- Process initialization of the device.
- History: Created by David Chiu 2004/3/19
- ==========================================================================*/
- #define _UI_INITIAL_
- #include <DP8051XP.H>
- #include "TypeDef.h"
- #include "Const.h"
- #include "Reg5661.h"
- #include "Common.h"
- #include "Initial.h"
- #include "Key.h"
- #include "OledString.h"
- #include "FileSystem.h"
- #include "NandFlash.h"
- #include "Sd.h"
- #include "DDM.h"
- #include "SaveSetting.h"
- #include "UiInitial.h"
- #include "ExtCodec.h"
- #include "IntCodec.h"
- #if(ENABLE_HOST_FUNCTION) //allen050720
- #include "UsbHostCommon.h"
- #include "UsbHost.h"
- #endif
- #if(_PEDOMETER_Mode_)
- #include "UiPedoMeter.h"
- #endif
- #include "OLED.h"
- #include "IconDefine.h"
- #if(USE_STEP_UP_CONVERTER) //Jeff070315#1
- #include "StepUp.h"
- #endif
- #if(USE_FW_CHARGER)
- #include "Charger.h" //Jason 20070119#1 // Jeff070303#1
- #endif
- #include "Usb.h" //Walace060719#1
- #if(FM_MODULE==2)
- #include "I2C.h"
- #endif
- void InitVariable(void);
- void InitDispCtrl(BOOL fRunUsb) large; //Walace060501#3
- #if(INIT_KEY_HOLD_AUTO_POWER_OFF) //Walace060216#1
- void UiInitShowKeyHold(void);
- #endif
- #if(USE_STEP_UP_CONVERTER)
- #include "StepUp.h"
- #endif
- main(void)
- {
- BYTE bKey;
- BOOL fBootHotKey,fRunUsb;
- BOOL fKeyHoldPowerOff;
- BOOL fExtPowerOn; //tne 2006/01/17 #2
- BOOL fGoAmuse; //Vicky060301
- #if(_PEDOMETER_Mode_)
- XBYTE gxbPedoMeterWriteData;
- #endif
- //David051123#6 start
- #if(IC_5661_TYPE==IC_M5638C_B1B)
- WD_DIS();
- #endif
- //End
- Init8051();
- //vicky050602#1
- #if(SETTING_FOR_ICE_START|ICE_REAL_MODE)
- obDCVARRD=0x04; //DCV clock
- obDCVWRDATA=0xe2; //147 MHz
- obCLKMCUDIVF=0x0A;
- obCLKMCUCTRL=0xC8; //MCU clock use system clock //147/12
- #endif
- InitDisableClk();
- InitPowerCtrl();
- Init5661Ctrl();
- InitVariable();
- InitSpecialGpio();
- BootGpioControl();
- #if(CDC_FOR_S5638)
- IntCdcRStringPowerOn(); //Ren050312#2
- #endif
- /////tne 2006/01/17 #2/////
- #if(SETTING_FOR_ICE_START|ICE_REAL_MODE)
- ClkDspEn(); //060519
- obSYSSOFTRSTCTRL&=0xF7; //reset dsp
- obSYSSOFTRSTCTRL|=0x08; //dsp enable
- ClkDspDis();
- obPMSIZE|=0x04;//MCU USE ALL
- #if(NEW_FLASH)
- NandInit(NDINIT_IDENT_DONE);
- #else
- NandInit();
- #endif
- gxbSysState=S_INIT_RTC;
- #if(ICE_FOR_USB)
- fRunUsb = TRUE;
- #else
- fRunUsb = FALSE;
- #endif
- fExtPowerOn = FALSE;
- fKeyHoldPowerOff=FALSE;
- gfKeyLockedSts=KEY_UNLOCK;
- gxbLcdContrast=LCD_DEFAULT_CONTRAST;
- #else
- //Walace060920#1 start
- bKey=KEY_INVALID;
- fBootHotKey=FALSE;
- fRunUsb=FALSE;
- fKeyHoldPowerOff=FALSE;
- fExtPowerOn=FALSE;
- fGoAmuse=FALSE;
- //Walace060920#1 end
- gfKeyLockedSts=KEY_UNLOCK; //Nick061120
- if(CheckProgRestart()) //Firmware restart
- { //gxbSysState=S_INIT_FS_REC; //Walace060626#4
- gxbSysState=S_INIT_DISP_ANIMATE;
- }
- else //First boot
- {
- #if(PLAY_IN_ADAPTOR)
- gxbAdaptorPlugIn=ADAPTER_DEFAULT_STATE; // Jason 20070119#1 //WHH070307#5
- #endif
- gxbSysState=S_INIT_RTC;
- }
- //Try to load lcd constract value for power on animation
- if(SramCheck())
- {
- SramRead(SRAM_CONTRAST,&gxbLcdContrast);
- SramRead(SRAM_BACK_LIGHT, &gxbBackLightTime);//Walace060320#2
- }
- else
- {
- gxbLcdContrast=LCD_DEFAULT_CONTRAST;
- gxbBackLightTime = LCD_BACKLIGHT_DEFAULT_NUM; //Walace060320#2
- }
- //======================add by Rojam for PedoMeter=============================
- #if(_PEDOMETER_Mode_)
- obSYSSOFTRSTCTRL2 |= 0x04; // Disable I2C soft reset //add by Rojam for soft power On PedoMeter
- obCLKI2CMCTRL = 0xD0; // Enable I2C Clock 12MHz
- obMODSEL2 |= 0x08; // I2C Mode Select
- obREADYENH |= 0x08; // I2C I/O Ready
- obI2CCLKDIV = 7; // Set I2C Serial Port Clock for PedoMeter
- bKey=0xff;
- while(obI2CSERSTS&0x80)
- {
- bKey--;
- }
- gxbPedoMeterWriteData=0x01; //0x00 Open PedoMeter ; 0x01 Close PedoMeter
- obCLKI2CMCTRL |= 0x80; //clock Enable //Renshuo050322#A
- obMODSEL2 |= 0x08; //I2CM Enable
- obI2CMAADDR = PedoMeter_ADDR;
- obI2CFIFO = gxbPedoMeterWriteData;
- obI2CMACMD = (I2C_CMD_SINGLE | I2C_CMD_CURRENT | I2C_CMD_WRITE_MODE | I2C_CMD_DATA_LEN(1));
- //PedoMeterWrite();
- //Renshuo050322#A
- bKey=0xff;
- while(obI2CSERSTS&0x80)
- {
- bKey--;
- }//wait for idle
- obMODSEL2 &= 0xF7; //I2CM Disable
- obCLKI2CMCTRL &= 0x7F; //clock Disable
- #endif
- //===================================================
- #if(DEBUG_M5638C) //Walace060202
- obDCVARRD = 0x07;
- obDCVWRDATA = obDCVRDDATA & (~0x80); //do not use pswitch delay
- #endif
- if(VbusCheck(CHECK_VBUS_ON)) //Walace060901#2
- {
- fRunUsb=TRUE;
- fExtPowerOn=FALSE;
- #if(USE_FW_CHARGER) //WHH070304
- ChargerInit(); // ChargerInit for USB Mode
- #endif
- }
- //Jason 20070119#1 start
- #if(PLAY_IN_ADAPTOR)
- if(gxbAdaptorPlugIn==ADAPTER_PLUG_IN) //WHH070307#5
- {
- fRunUsb=FALSE;
- fExtPowerOn=FALSE;
- // Jason 20070119#1 start // Jeff070303#1 add WHH please Check
- #if(USE_FW_CHARGER)
- ChargerInit(); //WHH070304 // ChargerInit for Device Mode
- //gxbChargerFlag=1;//WHH070309#1
- obUSBOTGCTRL |= 0x02;
- obSYSSOFTRSTCTRL &= 0x7F;
- obUSBOTGSPEED &= USB_OFFJ;
- obGPIOCDIR|=0x04; //enable external LDO to turn on 3V3/1V8 for adapter plug out system is on
- obGPIOCDAT|=0x04; //enable external LDO to turn on 3V3/1V8 for adapter plug out syetem is on
- #endif
- // Jason 20070119#1 end
- }
- #endif
- //Jason 20070119#1 end
- #endif // #if(SETTING_FOR_ICE_START)
- InitSetPmi();
- ///////////////////////////
- //fBootHotKey=FALSE; //Walace060920#1
- //fGoAmuse=FALSE; //Vicky060301
- //SM Clock
- obCLKSMDIVF=0x08; //0x08
- obCLKSMCTRL=0xC8; // 147/10=14.6(13.4)
- KeyInit();
- EnableTimer0();
- gxbBtyLowNum=0;
- //UsbEnableInt(VBUS_INT); //Walace060719#1
- //SysEnableInt0(USB_INT); //Walace060719#1
- //Sample code for Ext.. power on
- #if(!SETTING_FOR_ICE_START) //David041117#4 start
- /*
- #if(!DEBUG_M5638C) //Renshuo050528#D
- gxbLcdCounter=0;
- while(gxbLcdCounter<PW_ON_EXT_DELAY)
- {
- //Detect Power Key
- obDCVARRD=0x03;
- if(!(obDCVRDDATA&0x80))
- SetPowerOff();
- }
- #endif
- */
- #endif
- //Nick060808 start
- #if(ENABLE_SD_FUNCTION&SD_DET_USE_INT1)
- obGPIO_INT_SOURCE = 0x01;//use gpiod interrupt
- obGPIO_INT_MASK &= 0xDF;//disable gpiod5
- obGPIO_INT_MASK |= 0x20;//enable gpiod5
- obSYSINT1MASK |= 0x04;//enable gpio_int
- #endif
- //Nick060808 end
- while(1)
- {
- KeyGet(bKey);
- if((bKey&0x0F)==KEY_VOL_UP)
- { fBootHotKey=TRUE; }
- //Vicky060301
- #if(ENABLE_AMUSE_FUNC)
- if((bKey&0x0F)==0x04)
- { fGoAmuse=TRUE; }
- #endif
- //End
- switch(gxbSysState)
- {
- //tne 2006/01/17 #2
- case S_INIT_RTC:
- bKey = obDCV_INT_FLAG; //Walace060803#3 read clear for intial value.
- InitRtc();
- //Walace060710#1 start
- #if(DEBUG_M5638C)//Nick060510#1 move to LOAD_PM state
- if(!fRunUsb)
- BrownOutInit(); //Ren060125
- #endif
- //Walace060710#1 end
- EX0=1; //Walace060710#1
- EA=1;
- #if(SD_DET_USE_INT1) //Nick060808
- EX1 = 1;
- #endif
- #if(1) //Walace060813#1 //Patrick061016
- if(!fRunUsb) //Walace061201#1
- LowBatteryDetection(5); //tne 2006/11/29 #1
- #endif
- gxbSysState++;
- break;
- case S_INIT_FONT_TABLE:
- if(!FontTableInit())
- gxbLastErrCode=ERR_INIT_FONT_ERR;
- gxbSysState++;
- break;
- case S_INIT_DISP_ANIMATE:
- SetSysSpeed(SYS_SPEED_NORMAL); //Walace070106#5
- //Walace060501#3 start
- OledInit();
- //OLED_CLEAR_ALL();
- OledShowIconNew(2,IM_BG_CLEAR_TO_BLACK,0,0); // WHH 070129
- gxbLcdCounter=0; // WHH 070129
- while(gxbLcdCounter<4){;} // WHH 070129
- //if(gxbBackLightTime!=LCD_BACKLIGHT_MIN_NUM) //Walace060828#1
- if((gxbBackLightTime!=LCD_BACKLIGHT_MIN_NUM)||fRunUsb) //Walace060828#1
- {
- gxbBackLightCounter=BACKLIGHT_STS_ON;
- BACKLIGHT_ON();
- }
- else
- {
- gxbBackLightCounter=BACKLIGHT_STS_OFF;
- BACKLIGHT_OFF();
- //tne 2006/11/29 #1 //Maybe low battery, try more stern test...
- if(gxbBtyLowNum>=LOW_BTY_RETRY_NUM)
- LowBatteryDetection(10);
- }
- if((!fRunUsb)&&(gfKeyLockedSts==KEY_LOCK))
- {
- #if(USE_STEP_UP_CONVERTER) //Larry061025#1
- InitStepUpConverter();
- #endif
- fKeyHoldPowerOff=TRUE;
- #if(COST_DOWN_CIRCUIT) // WHH 070125 #1
- obGPIOCDIR|=0x04;
- obGPIOCDAT|=0x04;
- #endif
- UiInitShowKeyHold();
- }
- else
- {
- fKeyHoldPowerOff=FALSE;
- InitDispCtrl(fRunUsb);
- }
- //Walace060501#3 end
- gxbSysState++;
- break;
- case S_INIT_NAND_FLASH:
- //modify by Nick 2006/02/14 add it. must use this clk source to avoid SD fail
- //obCLKMCUCTRL=0xb8; //Nick 2006/02/14 //Use DCV Audio clock //Nick060327#1
- SetSysSpeed(SYS_SPEED_UP_NAND_INIT); //tne 2005/11/28 #2
- //Ted 0203 start
- /*
- if(!NandInit())
- gxbLastErrCode=ERR_INIT_FLASH_ERR;
- */
- #if(NEW_FLASH)
- if(NandInit(NDINIT_DONE))//060508
- #else
- if(NandInit())
- #endif
- {
- if(gxwAddrPMI!=0)
- RestoreBlock0(); //if Block0 fail, start to recover Block0
- #if(NANDRESTORE_EN)
- RecoverNandReStore(); //Scott061204 //Recover lost nandrestore block
- #endif
- }
- else
- {
- gxbLastErrCode=ERR_INIT_FLASH_ERR;
- }
- //Ted 0203 end
- gxbSysState++;
- break;
- case S_INIT_LOAD_SETTING:
- //LoadExtMemory //Walace061212#3
- #if(!ICE_REAL_MODE)
- gxwProgramIndex=PM_INIT;
- ClkDspEn();
- obSYSSOFTRSTCTRL&=0xF7; //reset dsp
- obSYSSOFTRSTCTRL|=0x08; //dsp enable
- ClkDspDis();
- obPMSIZE|=0x04; //MCU USE ALL
- //Load Ext. Program
- LoadProgram(gxwProgramIndex,EXT_CODE_ONLY);
- EA=1;
- #endif
- //
- #if(ICE_REAL_MODE)
- InitChkSetting(TRUE);
- #else
- if(!fRunUsb)
- InitChkSetting(fBootHotKey);
- else
- InitChkSetting(FALSE);
- #endif
- #if(REC_TEST)
- gxwRecCnt=0;
- #endif
- gxbSysState++;
- break;
- case S_INIT_CALIBRATION:
- #if(ONE_BATT_MODE&DEBUG_M5638C) // Jeff_060620
- #if(!(SETTING_FOR_ICE_START|ICE_REAL_MODE))
- if(!fRunUsb) //Jeff_060314
- { // Jeff_061109 start
- RefleshBattCheck(0x1000); // Jeff_061102
- if(BattCheck()<125) // don't do calibration when batt is too high // Jeff_061102
- {BandGapCalibrationCheck();}
- } // Jeff_061109 end
- #if(USE_VDDIO_CALIBRATION) //hsiang VddioCali start
- InitialVddioCalibration();
- #endif //hsiang VddioCali end
- #endif
- #endif
- //Walace060614#2 BandGap mark start
- //BANDGAP_3V3_POWER_OFF(); //Walace060108
- //BANDGAP_1V8_SWITCH(); //Walace060108
- //#else //Walace060108
- //BANDGAP_3V3_SWITCH();
- //Walace060614#2 BandGap mark end
- gxbSysState++;
- break;
- case S_INIT_FONT_INDEX:
- //tne 2005/11/28 #2
- CKCON &= 0xF8;
- CKCON |= 0x02;
- SetSysSpeed(SYS_SPEED_UP_UI); //Walace060720#3
- if(!fRunUsb)
- {
- LoadStringTableIndex();
- LoadTransTableIndex();
- }
- gxbSysState++;
- break;
- case S_INIT_FS:
- ReCheckStorage(gxbStorage);
- if(!FsInit())
- {
- gxbLastErrCode=ERR_INIT_FS_ERR;
- gxbSysState++; //skip rec init
- }
- gxbSysState++;
- break;
- case S_INIT_FS_REC:
- /*
- if(fRunUsb) //If pure USB mode, not need rec init
- {
- if( ((gxbDrmOptionMode&DRM_OPTION_MTP_MODE)==DRM_OPTION_MTP_OFF) || (fBootHotKey) )
- goto NO_REC_INIT;
- }
- */
- //if(!fRunUsb)
- SetSysSpeed(SYS_SPEED_UP_INIT); //Walace060720#3
- if(!fRunUsb&&!gbFsUnableUse) //Walace060629#2
- InitRecInit();
- gxbSysState++;
- break;
- case S_INIT_LOAD_PM:
- //Use DCV Sys clock
- //#if(USE_STEP_UP_CONVERTER)
- McuClockCtrlAdjust(0xC8);// WHH #1 061017
- //#else
- //obCLKMCUCTRL=0xC8; //73(67)/5=14.6(13.4) //modify by Nick 2006/02/14 add it
- //#endif
- SetSysSpeed(SYS_SPEED_NORMAL);
- CKCON &= 0xF8;
- //tne 2005/11/23 #2
- //OLED_CLEAR_ALL(); //Walace060501#3
- if(gxbBackLightTime!=LCD_BACKLIGHT_MIN_NUM) //Walace060511#2
- { //OledSetContrast(gxbLcdContrast<<2); //Walace060204#Bright
- // OledSetBrightness(gxbLcdContrast); //Walace060204#Bright
- }
- #if(ICE_REAL_MODE)
- IE=0;
- gxbDeviceMode=DEV_MUSIC;
- gxwProgramIndex=PM_PLAY_FAT_LARGE;
- ClkDspEn();
- obSYSSOFTRSTCTRL&=0xF7; //reset dsp
- obSYSSOFTRSTCTRL|=DSP_RST_DIS; //dsp enable
- ClkDspDis();
- obPMSIZE|=0x04;//MCU USE ALL
- gxbModuleState=MODULE_INITIAL; //NandRestore
- LoadProgram(PM_VIDEO_FLIST,NORMAL_CODE);
- //LoadProgram(PM_PLAY_FAT_LARGE,NORMAL_CODE); //vicky061001#2 Debug Play
- //Load program here~
- #endif
- //Jason060925#1
- #if ((FM_MODULE==0)&&FM_INIT_STANDBY) // modify by Rojam 2007-04-18 14:3
- InitFmMuteAndStandBy();
- #endif
- if(fRunUsb)
- {
- //BACKLIGHT_OFF(); //Walace060501#3
- InitRunToUsb(fBootHotKey);
- }
- //BrownOutInit();//Nick060510#1 //Walace060710#1
- //If alarm switch on, enable dvc alarm interrupt
- EA=0;
- obDCVARRD=0x03;
- obDCV_INT_MASK = obDCV_INT_MASK | ((obDCVRDDATA&RTC_GET_ALARM_STS)|0x04);
- //OLED_CLEAR_ALL();
- #if(INIT_KEY_HOLD_AUTO_POWER_OFF) //Walace060216#1
- if(fKeyHoldPowerOff)
- {
- gxbSettingBuffer[SETTING_CURRENT_MODE]=SAVE_FROM_INIT_KEY_HOLD;
- gxbSettingBuffer[SETTING_NEXT_MODE]=SAVE_AND_POWER_OFF;
- LoadProgram(PM_SAVE_SETTING,NORMAL_CODE);
- }
- #endif
- //Vicky060301
- #if(ENABLE_AMUSE_FUNC)
- if(fGoAmuse &(!fRunUsb))
- gxbDeviceMode=DEV_AMUSE;
- #endif
- //End
- switch(gxbDeviceMode)
- {
- // WHH #1 301_061220(start)
- case DEV_SAVE:
- gxbFsDelId=FSDEL_GO_SAVE;
- gxbSettingBuffer[SETTING_CURRENT_MODE]=SAVE_FROM_INIT;
- gxbSettingBuffer[SETTING_NEXT_MODE]=SAVE_AND_SEL_MODE;
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- break;
- // WHH #1 301_061220(end)
- case DEV_FM:
- gxbFmPreset=0x00; //vicky050131
- //LoadProgram(PM_FM,NORMAL_CODE);
- gxbFsDelId = FSDEL_GO_FM; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- break;
- case DEV_FILE_CTRL: //tne 2007/01/12 #1
- gxbFsDelId = FSDEL_GO_FCTRL; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- break;
- case DEV_SYS:
- //LoadProgram(PM_SYSTEM,NORMAL_CODE);
- gxbFsDelId = FSDEL_GO_SYS; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- break;
- default:
- gxbDeviceMode=DEV_MUSIC;
- case DEV_MUSIC:
- //if(gfLargeBlock)
- {
- //LoadProgram(PM_PLAY_FAT_LARGE,NORMAL_CODE);
- gxbFsDelId = FSDEL_GO_PLAY; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- }
- break;
- case DEV_DVR:
- //if(gfLargeBlock)
- {
- //LoadProgram(PM_PLAY_DVR,NORMAL_CODE);
- gxbFsDelId = FSDEL_GO_DVR; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- }
- break;
- case DEV_HST:
- //LoadProgram(PM_HOST,NORMAL_CODE);
- gxbFsDelId = FSDEL_GO_HST; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- break;
- case DEV_PHO: // Walace050916
- gxbFsDelId = FSDEL_GO_PHO; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- break;
- case DEV_VIDEO: //Walace for _PM_VIDEO_
- gxbFsDelId = FSDEL_GO_VIDEO; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- break;
- //vicky060301
- #if(ENABLE_AMUSE_FUNC)
- case DEV_AMUSE:
- gxbFsDelId = FSDEL_GO_AMUSE; //File manipulation then go to specified PM
- LoadProgram(PM_INIT_CHK,NORMAL_CODE);
- break;
- #endif
- //End
- }
- break;
- }
- }
- }
- void InitVariable(void)
- {
- gfAlarmTimeUp=FALSE;
- gxbStorType=STOR_NAND;
- #if(NEW_FLASH)
- gxbNandInitStage=NDINIT_INIT;//060508 new_nf
- #else
- gfNandInit=FALSE;
- #endif
- gxbBtyLowNum=0;
- //gxwBattAverage = (127<<4); //initial batt average value to "full battery" //Renshuo050126#B
- gxwBattAverage = (BATTERY_LV_MAX<<4); //Walace060108#1
- gxbModuleState = MODULE_INITIAL; //Walace060607#1 PlayProcess
- gxbDeviceMode=DEV_INIT;
- gxbAbRepeatSts=AB_REPT_RESET; // no AB repeat
- gxwCurrentPlayTime=0;
- //gxdwCurrentLrcTime=0; //tne 2006/02/10 #1 ////Walace060226#remove
- gxbErrCode=ERR_NO_ERROR;
- gbFsUnableUse=FALSE; //add by tne 2005/01/07 #1
- #if(ENABLE_SD_FUNCTION)
- SdDefaultSetting();
- #endif
- #if(ENABLE_HOST_FUNCTION)
- UsbHostPowerOff();
- #endif
- gxbLastBattSts=UI_ICON_BTY_LV1;
- gxbLastErrCode=ERR_NO_ERROR;
- gdwSampleNum=0;
- gxbLastVolume=FADEOUT_VOL; //Renshuo041203#A
- gxbTargetVolume = FADEOUT_VOL; //Renshuo041203#A
- gxbPlaybackRate = 0; //050202Renshuo#A
- gxbLcdLimitCol=MAX_COLNUM;
- #if(DRM_MODE_EN) //Nick060606#1
- gfHostSupportMTP = TRUE;
- gxbHostTimeOutRetry = 0;
- #endif
- gxbSWCBW=0; //allen051101#3
- #if(NEW_FLASH)
- gfCommonModified=FALSE; //Walace060904#2
- #endif
- #if(USE_STEP_UP_CONVERTER)
- gxwAuxAverage=0;
- #endif
- #if(FM_MODULE==2)
- gxbFmChip=0x20; //Rojam 070117
- #endif
- //Nick061120 start //NandRestore start
- gxbRestoreBlkNum = 0;
- gxbCurrentRestoreStep = 0;
- gxbRestoreCopy = 0;
- gxbRestoreSetPage = 0;
- gxbNandRestoreFlag = 0;
- gxwTimeToScanPM = 0; //Nick061204
- //Nick061120 end //NandRestore end
- }
- void InitDispCtrl(BOOL fRunUsb) large //Walace060501#3
- {
- #if(INIT_USE_BTY_LOW_FLAG)
- BYTE bI;
- #endif
- BYTE bCycle; // WHH #5 301_061225
- //check battery low flag
- #if(INIT_USE_BTY_LOW_FLAG)
- if(SramCheck()) //vicky050517
- {
- SramRead(SRAM_BYT_LOW_FLAG,&bI);
- if(bI)
- {
- StrShowInitLowPower();
- gxbLcdCounter=0;
- while(gxbLcdCounter<PW_ON_DISP_INTERVAL) { };
- OledDisplayOn(OFF);
- SetPowerOff();
- }
- }
- #endif
- #if(USE_STEP_UP_CONVERTER)
- InitStepUpConverter();
- #endif
- //Walace060501#3 start
- if(fRunUsb)
- {
- // WHH #6 301_061225(start)
- OledShowIconNew(2,IM_WAITING,0,0); //tne 2007/01/09 #3
- /*OledShowIcon(ICON_PC,14,16);
- OledShowIcon(ICON_USB_STATE_IDLE,52,LINE2);
- #if(DRM_MODE_EN) //Walace060902#1 start
- OledShowIcon(ICON_USB_SEARCH,SEG8,LINE2-6);
- #else
- OledShowIcon(ICON_USB_MASS,SEG8,LINE2);
- #endif //Walace060902#1 end*/
- // WHH #6 301_061225(end)
- }
- else
- {
- #if(0)//COST_DOWN_CIRCUIT) // modify by Rojam 2007-03-27 17:13
- obGPIOCDIR|=0x04;
- obGPIOCDAT|=0x04;
- #endif
- #if(_PEDOMETER_Mode_)
- gxdCurrentStepNum=0;
- gxbPedometerPowerOn=0;
- gxwCurrentMotionTime=0;
- gxdCurrentMotionDistance=0;
- gxwLastAccelerationX=0;
- gxwLastAccelerationY=0;
- gxbCalibration=TRUE;
- gxbUp=0;
- gxbDown=0;
- gxwAcc0Lpf0=1;
- gxwAcc0Lpf1=1;
- gxwAcc1Lpf0=1;
- gxwAcc1Lpf1=1;
- gxwAcc0Hpf0=1;
- gxwAcc0Hpf1=1;
- gxwAcc1Hpf0=1;
- gxwAcc1Hpf1=1;
- gxwAccFilter0=1;
- gxwAccFilter1=1;
- gxwAccMax=1;
- gxwAccMin=1;
- gxwAccPeak=1;
- gxbSensStep=32; //16:WALK; 32:JOG; 100:RUN
- #endif
- #if(!ONE_BATT_MODE)
- #if(COLOR_MODE==0)
- obGPIOCDIR|=0x04;
- obGPIOCDAT|=0x04;
- #else
- obGPIOADIR|=0x01;
- obGPIOADAT|=0x01;
- #endif
- #endif
- //Walace060806#3 start
- // WHH #5 301_061225(start)
- for(bCycle=0;bCycle<5;bCycle++)
- {
- ShowAnimation(IM_OPEN_ANIMATION_START ,
- IM_OPEN_ANIMATION_OFFSET ,
- IM_OPEN_ANIMATION_NUM,
- 0,
- 0,
- IM_OPEN_ANIMATION_DELAY );
- }
- /*ShowAnimation(ANI_POWER_ON_START,
- ANI_POWER_ON_OFFSET,
- ANI_POWER_ON_NUM,
- 0,
- 0,
- ANI_POWER_ON_DEALY);*/
- // WHH #5 301_061225(end)
- //Walace060806#3 end
- }
- //Walace060501#3 end
- }
- //Walace060216#1
- #if(INIT_KEY_HOLD_AUTO_POWER_OFF)
- void UiInitShowKeyHold(void)
- {
- SetSysSpeed(SYS_SPEED_NORMAL);
- if(gxbBackLightTime!=LCD_BACKLIGHT_MIN_NUM)
- {
- gxbBackLightCounter=BACKLIGHT_STS_ON; //Set state on and clen counter
- BACKLIGHT_ON();
- }
- else
- {
- gxbBackLightCounter=BACKLIGHT_STS_OFF; //Dennis_Shih051122#1
- BACKLIGHT_OFF(); //Dennis_Shih051122#1
- }
- //tne 2007/01/17 #2
- OledShowIconNew(2,IM_BG_CLEAR_TO_BLACK,0,0);
- OledShowIconNew(1,ICON_KEY_HOLD,(OLED_MAX_COL-48)/2,(OLED_MAX_ROW-48)/2);
- #if(IC_5661_TYPE==IC_M5638C_B1B) //Walace060524#1
- #if(COST_DOWN_CIRCUIT)
- obGPIOCDIR&=~0x02;
- #else
- obDCVARRD=0x02;
- #endif
- #else
- obDCVARRD=0x03;
- #endif
- while(gxbLcdCounter<10)
- {
- //Detect Power Key
- #if(COST_DOWN_CIRCUIT)
- if((obGPIOCDAT&0x02))
- gxbLcdCounter = 0;
- #else
- if((obDCVRDDATA&0x80))
- gxbLcdCounter = 0;
- #endif
- }
- }
- #endif