📄 opening_init.c
字号:
//********************************************************************
// Name: app1_init.c
//
// Copyright (C) Sitronix TECHNOLOGY INC.
// All rights reserved by Sitronix TECHNOLOGY INC.
//
// Project: ST3110
// Author: Terry Wu
// Begin Date: 2008/01/01
// Last update: 2008/04/01
// $Header: $
// Description:
// pure code framework --- init.c
//
//
//********************************************************************
#pragma codeseg(APP)
#include "sys.h"
#include "ST3110_img_define.h"
#include "MusicPlayer.h"
uint8 counter_2HZ,pic_flag;//,bl;
void _init_pending_events(void);
uint8 _load_path(uint32 ram_path_adr);
void APP_INIT(void)
{
// initial variable when this task is reload
counter_2HZ = 0;
// init LCM
API_LcmSetLanguage(CS_BIG5);
API_LcmSetCharForm(CHFS_16x16);
API_LcmSetCharColor(COLOR_WHITE,COLOR_DPF_BG);
API_LcmEnableKeepBackGround();
API_LcmSetStringLenth(54);
/*
//set BL
bl = API_SysReadValue(RAM_SETTING_ADR,SET_BL);
{
const uint8 BL_array[7] = {BL7_L0,BL7_L1,BL7_L2,BL7_L3,BL7_L4,BL7_L5,BL7_L6};
API_LcmSetBackLight(BL_array[bl]);
}
*/
// paint screen
API_LcmPutSysImage(IMG_OPENING,0,0);
// pend event
_init_pending_events();
//load FAT lib
if(API_SysSDCardDetect())
{
if(!API_SysLoadFATLib(FAT_IS_SD))
{
API_LcmShowString("init SD card error",0,20);
API_OsReleaseEvent(EVID_BT_2HZ);
}
else
{
API_SysWriteValue(RAM_SHARING_ADR,ROOT_ORDER,0);
API_SysWriteValue(RAM_SHARING_ADR,IS_NAND_SD,FAT_IS_SD);
API_OsPendEvent(EVID_BT_2HZ);
}
}
else
{
if(!API_SysLoadFATLib(FAT_IS_NAND))
{
API_LcmShowString("Formating Disk....",0,36);
//API_LcmShowString("init Nand Flash error",0,20);
//API_LcmShowString("Please connect with PC and format USB Disk",0,36);
API_FATFormatDisk();
API_SysLoadFATLib(FAT_IS_NAND);
//API_OsReleaseEvent(EVID_BT_2HZ);
API_OsPendEvent(EVID_BT_2HZ);
}
else
{
API_SysWriteValue(RAM_SHARING_ADR,ROOT_ORDER,0);
API_SysWriteValue(RAM_SHARING_ADR,IS_NAND_SD,FAT_IS_NAND);
API_OsPendEvent(EVID_BT_2HZ);
}
}
//load media lib
if(!API_SysLoadMediaLib())
{
API_LcmShowString("load Media library error",0,20);
API_OsReleaseEvent(EVID_BT_2HZ);
}
// set hardware volume
API_SysSetHardwareVolume(0,0); // DAC set 0
API_SysSetHardwareVolume(4,10); // Mixer set 10
//set mixer output
API_SysMixerOutputSelection(MIXER_DAC);
// load last pic
//pic_flag = _load_path(RAM_PHO_PATH_ADR);
//check low power
if(API_SysGetVolLv() < BATTERY_LV0)
API_OsSetCurrentTask(TASKID_POWEROFF);
}
void _init_pending_events(void)
{
//API_OsPendEvent(EVID_BT_2HZ);
API_OsPendEvent(EVID_ALARM_OCCUR);
API_OsPendEvent(EVID_UPDATE_SD);
API_OsPendEvent(EVID_VBUS_PLUGIN);
API_OsPendEvent(EVID_VBUS_PLUGOUT);
}
//***************************************************************************
// Func: uint8 _load_path(uint32 ram_path_adr)
// Input: ram_path_adr : ram address
// Output: result : TRUE
// : FALSE
// Description: load path, assign CUR_FILE_L in RAM_SHARING_ADR and return result
//
//***************************************************************************
uint8 _load_path(uint32 ram_path_adr)
{
uint8 temp,result,root_order,i;
uint16 cur_path,pre_path;
root_order = API_SysReadValue(RAM_SHARING_ADR,ROOT_ORDER);
cur_path = 0;
pre_path = 0;
temp = 0;
result = 0;
//return to root
while(root_order!=0)
{
API_FATExitFolder();
API_SysWriteValue2B(RAM_CUR_PATH_ADR,root_order*2,0);
root_order--;
}
API_SysWriteValue(RAM_SHARING_ADR,ROOT_ORDER,root_order);
while((cur_path=API_SysReadValue2B(ram_path_adr,(temp++)*2 )) !=0 )
{
if(pre_path == 0) // first layer
{
pre_path = cur_path;
}
else
{
if(API_FATEnterFolder(pre_path))
{
if(root_order<8) //only record 8 order path
API_SysWriteValue2B(RAM_CUR_PATH_ADR,root_order*2,pre_path);
API_SysWriteValue(RAM_SHARING_ADR,ROOT_ORDER,++root_order);
pre_path = cur_path;
}
else
{
//if wrong path return to root
while(root_order!=0)
{
API_FATExitFolder();
API_SysWriteValue2B(RAM_CUR_PATH_ADR,root_order*2,0);
root_order--;
}
API_SysWriteValue(RAM_SHARING_ADR,ROOT_ORDER,root_order);
//clean record path and current path
for(i=0;i<8;i++)
{
API_SysWriteValue2B(ram_path_adr,i*2,0);
API_SysWriteValue2B(RAM_CUR_PATH_ADR,i*2,0);
}
return FALSE;
}
}
}
// cur_path=0, handle pre_path
if(pre_path == 0) //no path, jump photo browser
{
result = FALSE;
}
else
{
result = TRUE;
API_SysWriteValue2B(RAM_SHARING_ADR,CUR_FILE_L,pre_path);
}
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -