?? fmschedule.c
字號:
FmStationName[i] = '\0';
break;
}
FmStationName[i] = pFmStationName[i];
FmStationName[FM_STATION_NAME_LENGTH - 1] = '\0';
}
}
else
{
FmStationName[0] = '\0';
}
// 關(guān)閉列表文件
if (NOT_OPEN_FILE != hSlaveFile)
{
FileClose(hSlaveFile);
}
return iStatus;
}
#endif
//--------------------------------------------------FM 電臺列表 結(jié)束----------------------------------------------------------
/*
********************************************************************************
* Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.
* Function name : FmTimerDec()
* Author: ZHengYongzhi
* Description: FM 定時計數(shù)器減1操作
*
* Input:
* Output:
* Return:
* Calls:
*
* History: <author> <time> <version>
* ZhengYongzhi 2006/01/01 Ver1.0
* desc: ORG
* --------------------------------------------------------------------
* ZhengYongzhi 2007-5-7 Ver1.9
* desc: 添加注釋
********************************************************************************
*/
__attribute__((section(".fm_text,\"ax\"")))
void FmTimerDec(void)
{
if (FmTimerCount != 0) {
FmTimerCount -- ;
}
}
/*
********************************************************************************
* Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.
* Function name : FmModuleProc()
* Author: ZHengYongzhi
* Description: FM模塊處理主程序
* 1) 功能調(diào)度
* 2) 背光、顯示、按鍵等處理程序調(diào)用
*
* Input:
* Output:
* Return:
* Calls:
*
* History: <author> <time> <version>
* ZhengYongzhi 2006/01/01 Ver1.0
* desc: ORG
* --------------------------------------------------------------------
* ZhengYongzhi 2007-5-7 Ver1.9
* desc: 添加注釋
********************************************************************************
*/
__attribute__((section(".fm_text,\"ax\"")))
void FmModuleProc(void)
{
unsigned int i, j;
switch(Fun1MsgArray[1])
{
case MSG_FUNCTION1_FM_INIT: //Fm Cpu / Variable / Codec Init
FmModuleInitial();
break;
case MSG_FUNCTION1_FM_START:
FmPlayStart(); //恢復(fù)上次電臺設(shè)置
break;
case MSG_FUNCTION1_FM_PLAY: //收音機(jī)調(diào)臺處理
FmPlay();
break;
case MSG_FUNCTION1_FM_MENU:
break;
case MSG_FUNCTION1_FM_DEL:
case MSG_FUNCTION1_FM_SAVE:
break;
default:
break;
}
if (DisplayFlag == DISP_FM)
{
if (SystemInfo.bc.bBackLightOffStart)
{
bitclear_creg(%imask,5);
SystemInfo.bc.bBackLightOffStart = 0;
LcdBackLightOff();
bitset_creg(%imask,5);
}
if (SystemInfo.bc.bBackLightOnStart == 0)
{
FmKeyProc();
}
else
{
bitclear_creg(%imask,5);
SystemInfo.bc.bBackLightOnStart = 0;
bitset_creg(%imask,5);
SystemInfo.bc.bBackLightOnStart1 = 1;
LCD_SDRAM_Standby_Return();
}
if (SystemInfo.bc.bHoldDisplay)
{
bitclear_creg(%imask,5);
SystemInfo.bc.bHoldDisplay = 0;
bitset_creg(%imask,5);
DisplayRecoveryTime = 0;
PreDisplayFlag = DisplayFlag;
DisplayFlag = DISP_HOLD;
DisplayPicture(0, 0, MAX_PIC_XSIZE, MAX_PIC_YSIZE, HOLD_OFF_PIC + (unsigned long)(SystemInfo.bc.bHoldOn) * MAX_PIC_SIZE);
FmDisplayFlag |= FM_DISPFLAG_HOLD; //Ver1.7 2007-01-22 解決收音機(jī)界面沒有Hold圖標(biāo)顯示的問題
return;
}
if (SysBatteryFlag.bc.bBatteryDisplay)
{
SysBatteryFlag.bc.bBatteryDisplay = 0;
FmDisplayFlag |= FM_DISPFLAG_BATT;
}
if (SystemInfo.bc.bDisplayRecovery)
{
SystemInfo.bc.bDisplayRecovery = 0;
//-------------------------------------------------------------
//Ver1.8 2007-03-08 zyz 解決FM在hold或黑屏后返回到之前的狀態(tài)
//if (Fun1MsgArray[1] != MSG_FUNCTION1_FM_PLAY) Fun1MsgArray[1] = MSG_FUNCTION1_FM_PLAY;
//Ver1.7 2007-01-22 解決收音機(jī)界面沒有Hold圖標(biāo)顯示的問題
FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT |
FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |
FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO | FM_DISPFLAG_HOLD);
DISP_Fm();
if (Fun1MsgArray[1] == MSG_FUNCTION1_FM_MENU)
{
FmDisplayFlag |= (FM_DISPFLAG_SUBMENU_BK | FM_DISPFLAG_SUBMENU_SEL);
}
else if ((Fun1MsgArray[1] == MSG_FUNCTION1_FM_SAVE) || (Fun1MsgArray[1] == MSG_FUNCTION1_FM_DEL))
{
FmDisplayFlag |= (FM_DISPFLAG_SUBMENU_BK | FM_DISPFLAG_SUBMENU_SEL);
DisplayFmMenu();
FmDisplayFlag |= (FM_DISPFLAG_LIST_BK | FM_DISPFLAG_LIST_SEL);
}
}
//Ver1.8 End---------------------------------------------------
if ((FmDisplayFlag != FM_DISPFLAG_NULL) && (SystemInfo.bc.bBackLightStatus != 2))
{
if (Fun1MsgArray[1] == MSG_FUNCTION1_FM_MENU)
{
DisplayFmMenu();
}
else if ((Fun1MsgArray[1] == MSG_FUNCTION1_FM_SAVE) || (Fun1MsgArray[1] == MSG_FUNCTION1_FM_DEL))
{
DisplayFmList();
}
else
{
DISP_Fm();
}
}
if (SystemInfo.bc.bBackLightOnStart1)
{
SystemInfo.bc.bBackLightOnStart1 = 0;
DmaFillImage2Lcd();
LcdBackLightOn();
KeyReset();
}
}
}
/*
********************************************************************************
* Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.
* Function name : FmModuleInitial()
* Author: ZHengYongzhi
* Description: FM 模塊初始化
*
* Input:
* Output:
* Return:
* Calls:
*
* History: <author> <time> <version>
* ZhengYongzhi 2006/01/01 Ver1.0
* desc: ORG
* --------------------------------------------------------------------
* ZhengYongzhi 2007-5-7 Ver1.9
* desc: 添加注釋
********************************************************************************
*/
__attribute__((section(".fm_text,\"ax\"")))
void FmModuleInitial(void)
{
unsigned int i,j;
switch (Fun1MsgArray[2])
{
case MSG_FUNCTION1_FM_INIT_READY:
{
bitclear_creg(%imask,5);
FmTimerCount = 0;
bitset_creg(%imask,5);
FmInitReady();
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_INIT,MSG_FUNCTION1_FM_INIT_POWER,0,0);
break;
}
case MSG_FUNCTION1_FM_INIT_POWER:
{
if (FmTimerCount > 0)
{
break;
}
bitclear_creg(%imask,5);
FmTimerCount = 20;
bitset_creg(%imask,5);
FmInitPowerOn();
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_INIT,MSG_FUNCTION1_FM_INIT_DATA,0,0);
break;
}
case MSG_FUNCTION1_FM_INIT_DATA:
{
if (FmTimerCount > 0)
{
break;
}
bitclear_creg(%imask,5);
FmTimerCount = 10;
bitset_creg(%imask,5);
FmInitData((char)(GlobalFmVar.FmArea));
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_INIT,MSG_FUNCTION1_FM_INIT_STC,0,0);
break;
}
case MSG_FUNCTION1_FM_INIT_STC:
{
if (FmTimerCount > 0)
{
break;
}
if(FmWaitSTC()==1)
{
bitclear_creg(%imask,5);
FmTimerCount = 3;
bitset_creg(%imask,5);
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_INIT,MSG_FUNCTION1_FM_INIT_STC,0,0);
}
else
{
bitclear_creg(%imask,5);
FmTimerCount = 3;
bitset_creg(%imask,5);
FmInitClrSTC();
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_INIT,MSG_FUNCTION1_FM_INIT_END,0,0);
}
break;
}
case MSG_FUNCTION1_FM_INIT_END:
{
if (FmTimerCount > 0)
{
break;
}
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_START,0,0,0);
break;
}
default:
{
if (GlobalFmVar.FmArea == FM_AREA_JAPAN)
{
FmFreqMaxVal = 9100;
FmFreqMinVal = 7600;
}
else
{
FmFreqMaxVal = 10800;
FmFreqMinVal = 8750;
}
if (Sys1InitFlag.bc.bFmSysInitEnable)
{
FmCPUInit();
LCD_Init(0);
AmplifierOff();
FmCodecInit();
FmVariableInit();
if (SystemInfo.bc.bMusicMenuSet == 1)
{
SystemInfo.bc.bMusicMenuSet = 0;
}
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_INIT,MSG_FUNCTION1_FM_INIT_READY,0,0);
}
else
{
if (SystemInfo.bc.bMusicMenuSet == 1)
{
SystemInfo.bc.bMusicMenuSet = 0;
if (GlobalFmVar.FmArea == FM_AREA_JAPAN)
{
FmFreqMaxVal = 9100;
FmFreqMinVal = 7600;
}
else
{
FmFreqMaxVal = 10800;
FmFreqMinVal = 8750;
}
j = 0;
for (i = 0; i < FREQMAXNUMBLE; i++)
{
if ((GlobalFmVar.FmFreqArray[i] < FmFreqMinVal) || (GlobalFmVar.FmFreqArray[i] > FmFreqMaxVal))
{
GlobalFmVar.FmFreqArray[i] = 0;
j ++ ;
}
}
if (j >= FREQMAXNUMBLE -1 )
{
GlobalFmVar.FmSaveNum = 0;
}
if ((GlobalFmVar.FmFreq < FmFreqMinVal) || (GlobalFmVar.FmFreq > FmFreqMaxVal))
{
GlobalFmVar.FmFreq = FmFreqMinVal;
}
FmGuageVal = (unsigned int)((unsigned long)(FM_GUAGE_CONST) * (GlobalFmVar.FmFreq - FmFreqMinVal) / (FmFreqMaxVal - FmFreqMinVal));
FmGuageX = FmGuageVal;
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_START,0,0,0);
break;
}
FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT |
FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |
FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO);
FmStereoCount = 0;
FmStereoCount1 = 0;
PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_PLAY,MSG_FUNCTION1_FM_READ_ST,0,0);
}
if ((GlobalFmVar.FmFreq < FmFreqMinVal) || (GlobalFmVar.FmFreq > FmFreqMaxVal))
{
GlobalFmVar.FmFreq = FmFreqMinVal;
}
break;
}
}
KeyReset();
}
/*
********************************************************************************
* Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.
* Function name : FmCPUInit()
* Author: ZHengYongzhi
* Description: 進(jìn)入FM模塊時的CPU初始化
*
* Input:
* Output:
* Return:
* Calls:
*
* History: <author> <time> <version>
* ZhengYongzhi 2006/01/01 Ver1.0
* desc: ORG
* --------------------------------------------------------------------
* ZhengYongzhi 2007-5-7 Ver1.9
* desc: 添加注釋
********************************************************************************
*/
__attribute__((section(".fm_text,\"ax\"")))
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -