⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opening_init.c

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 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 + -