?? si4702.c
字號:
g_Setting.GlobalFLAG.MuteFlag=0;
SI4702_AutoChangeFreq(1);
break;
case KEY_NEXT:
//case KEY_FF:
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.GlobalFLAG.dispCHFlag=0;
g_Setting.GlobalFLAG.MuteFlag=0;
SI4702_ChangeCurFreq(1);
break;
case KEY_PREV:
g_Setting.GlobalFLAG.MuteFlag=0;
SI4702_ChangeCurFreq(0);
break;
case KEY_FF:
g_Setting.GlobalFLAG.MuteFlag=0;
SI4702_AutoChangeFreq(1);
break;
case KEY_FB:
g_Setting.GlobalFLAG.MuteFlag=0;
SI4702_AutoChangeFreq(0);
break;
/**
case KEY_VOL_PLUS:
case KEY_VOL_PLUS_LONG:
g_Setting.Globalsystem1.vol_val=_0to14(g_Setting.Globalsystem1.vol_val, 0);
SetVolume(g_Setting.Globalsystem1.vol_val);
//Player_SendCmd(MPI_SETVOLUME,(UINT8)1);
break;
case KEY_VOL_MINUS:
case KEY_VOL_MINUS_LONG:
g_Setting.Globalsystem1.vol_val=_0to14(g_Setting.Globalsystem1.vol_val, 1);
SetVolume(g_Setting.Globalsystem1.vol_val);
//Player_SendCmd(MPI_SETVOLUME,(UINT8)-1);
break;
**/
case KEY_BAND:
Si4702_WriteChan(7);
g_Setting.Globalsystem1.RadioBand++;
if(g_Setting.Globalsystem1.RadioBand>3)
g_Setting.Globalsystem1.RadioBand=1;
Get_Chan(7);
I2C_Write_8bitROG(EEprom_Adr, EEprom_RadioBand, g_Setting.Globalsystem1.RadioBand);//每改變一次波段就保存一次
break;
case KEY_M1_PLAY:
g_Setting.GlobalFLAG.MuteFlag=0;
UITimeout_ResetTime();
g_Setting.Globalsystem1.Radio_Chan=1;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Get_Chan(0);
break;
case KEY_M2_INT:
g_Setting.GlobalFLAG.MuteFlag=0;
UITimeout_ResetTime();
g_Setting.Globalsystem1.Radio_Chan=2;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Get_Chan(1);
break;
case KEY_M3_REPEAT:
g_Setting.GlobalFLAG.MuteFlag=0;
UITimeout_ResetTime();
g_Setting.Globalsystem1.Radio_Chan=3;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Get_Chan(2);
break;
case KEY_M4_RANDOM:
g_Setting.GlobalFLAG.MuteFlag=0;
UITimeout_ResetTime();
g_Setting.Globalsystem1.Radio_Chan=4;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Get_Chan(3);
break;
case KEY_M5_10PREV:
g_Setting.GlobalFLAG.MuteFlag=0;
UITimeout_ResetTime();
g_Setting.Globalsystem1.Radio_Chan=5;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Get_Chan(4);
break;
case KEY_M6_10NEXT:
g_Setting.GlobalFLAG.MuteFlag=0;
UITimeout_ResetTime();
g_Setting.Globalsystem1.Radio_Chan=6;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Get_Chan(5);
break;
case MSG_TASK_TIMEOUT_EXIT:
g_Setting.Globalsystem1.Dispstatus_fm=disp_Freq;
g_Setting.Globalsystem1.SETMODE=0;
break;
case KEY_M1_PLAY_LONG:
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.Globalsystem1.Radio_Chan=1;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Si4702_WriteChan(0);
break;
case KEY_M2_INT_LONG:
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.Globalsystem1.Radio_Chan=2;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Si4702_WriteChan(1);
break;
case KEY_M3_REPEAT_LONG:
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.Globalsystem1.Radio_Chan=3;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Si4702_WriteChan(2);
break;
case KEY_M4_RANDOM_LONG:
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.Globalsystem1.Radio_Chan=4;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Si4702_WriteChan(3);
break;
case KEY_M5_10PREV_LONG:
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.Globalsystem1.Radio_Chan=5;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Si4702_WriteChan(4);
break;
case KEY_M6_10NEXT_LONG:
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.Globalsystem1.Radio_Chan=6;
g_Setting.Globalsystem1.Dispstatus_fm=disp_Get_chan;
Si4702_WriteChan(5);
break;
case KEY_VOL_PLUS:
case KEY_VOL_PLUS_LONG:
UITimeout_ResetTime();
g_Setting.GlobalFLAG.DispTimeFlag=0;
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.Globalsystem1.Dispstatus_fm=disp_setmodeVol;
switch(g_Setting.Globalsystem1.SETMODE)
{
case 0://volume
//if(g_Setting.Globalsystem1.vol_val>0 && g_Setting.Globalsystem1.vol_val<32)
ChangeVolume_New(1);
break;
case 1://bass
//if(g_Setting.Globalsystem1.BASS_vol>0 & g_Setting.Globalsystem1.BASS_vol<14)
g_Setting.Globalsystem1.BASS_vol=BASS_TRE_0to14(g_Setting.Globalsystem1.BASS_vol, 1);
Modify_basstreble(0);
break;
case 2://tre
//if(g_Setting.Globalsystem1.TRE_vol>0 && g_Setting.Globalsystem1.TRE_vol<14)
g_Setting.Globalsystem1.TRE_vol=BASS_TRE_0to14(g_Setting.Globalsystem1.TRE_vol, 1);
Modify_basstreble(1);
break;
case 3://bal
//if(g_Setting.Globalsystem1.Balance>0 && g_Setting.Globalsystem1.Balance<14)
g_Setting.Globalsystem1.Balance=BASS_TRE_0to14(g_Setting.Globalsystem1.Balance, 1);
Modify_FAD_balance();
break;
case 4:
//if(g_Setting.Globalsystem1.Front_round>0 && g_Setting.Globalsystem1.Front_round<14)
g_Setting.Globalsystem1.Front_round=BASS_TRE_0to14(g_Setting.Globalsystem1.Front_round,1);
Modify_FAD_balance();
break;
default:
break;
}
break;
case KEY_VOL_MINUS:
case KEY_VOL_MINUS_LONG:
UITimeout_ResetTime();
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.GlobalFLAG.DispTimeFlag=0;
g_Setting.Globalsystem1.Dispstatus_fm=disp_setmodeVol;
switch(g_Setting.Globalsystem1.SETMODE)
{
case 0://volume
if(g_Setting.Globalsystem1.vol_val>0 && g_Setting.Globalsystem1.vol_val<32)
ChangeVolume_New(0);
break;
case 1://bass
//if(g_Setting.Globalsystem1.BASS_vol>0 & g_Setting.Globalsystem1.BASS_vol<14)
g_Setting.Globalsystem1.BASS_vol=BASS_TRE_0to14(g_Setting.Globalsystem1.BASS_vol, 0);
Modify_basstreble(0);
break;
case 2://tre
//if(g_Setting.Globalsystem1.TRE_vol>0 && g_Setting.Globalsystem1.TRE_vol<14)
g_Setting.Globalsystem1.TRE_vol=BASS_TRE_0to14(g_Setting.Globalsystem1.TRE_vol, 0);
Modify_basstreble(1);
break;
case 3://BAL
//if(g_Setting.Globalsystem1.Balance>0 && g_Setting.Globalsystem1.Balance<14)
g_Setting.Globalsystem1.Balance=BASS_TRE_0to14(g_Setting.Globalsystem1.Balance, 0);
Modify_FAD_balance();
break;
case 4:
//if(g_Setting.Globalsystem1.Front_round>0 && g_Setting.Globalsystem1.Front_round<14)
g_Setting.Globalsystem1.Front_round=BASS_TRE_0to14(g_Setting.Globalsystem1.Front_round,0);
Modify_FAD_balance();
break;
default:
break;
}
break;
case KEY_SET:
UITimeout_ResetTime();
g_Setting.GlobalFLAG.MuteFlag=0;
g_Setting.Globalsystem1.Dispstatus_fm=disp_setmodeVol;
g_Setting.Globalsystem1.SETMODE++;
if(g_Setting.Globalsystem1.SETMODE>4)
g_Setting.Globalsystem1.SETMODE=0;
break;
case KEY_CLK:
g_Setting.GlobalFLAG.DispTimeFlag=~g_Setting.GlobalFLAG.DispTimeFlag;
break;
case KEY_CLK_LONG:
SystemSetTime();
break;
case KEY_EQ:
g_Setting.Globalsystem1.EQ++;
if(g_Setting.Globalsystem1.EQ>4)
g_Setting.Globalsystem1.EQ=0;
SetEQ();
//g_Setting.GlobalFLAG.LOUDFlag=~g_Setting.GlobalFLAG.LOUDFlag;
//SelectINChannel(g_Setting.Globalsystem1.nTaskID);
break;
case KEY_EQ_LONG:
g_Setting.GlobalFLAG.LOUDFlag=~g_Setting.GlobalFLAG.LOUDFlag;
SelectINChannel(g_Setting.Globalsystem1.nTaskID);
break;
case KEY_MUTE:
g_Setting.GlobalFLAG.MuteFlag=~g_Setting.GlobalFLAG.MuteFlag;
break;
case MSG_TASK_TIMEOUT_LOCK:
g_Setting.GlobalDISP.STCHECKTIME++;
g_Setting.GlobalFLAG.MuteFlashFlag=~g_Setting.GlobalFLAG.MuteFlashFlag;
break;
/**
case KEY_POWER_OFF:
DISP.disptime=20;
DISP.KEYTIME++;
if(DISP.KEYTIME==10)
{
BBPCALL();
SYS.StandbyStatus=01;
I2C_Write_8bitROG(EEprom_Adr, EEprom_stadby, SYS.StandbyStatus);
delay_ms(20);
SYS.nTaskID=TASK_STANDBY;
DISP.KEYTIME=0;
return SYS.nTaskID;
}
break;
case KEY_CLK_LONG:
DISP.disptime=20;
DISP.KEYTIME++;
if(DISP.KEYTIME==10)
{
BBPCALL();
SYS.DispTimeFlag=1;
DISP.KEYTIME=0;
SET_DS1302();
}
break;
case KEY_SET_LONG:
DISP.disptime=20;
DISP.KEYTIME++;
if(DISP.KEYTIME==10)
{
DISP.KEYTIME=0;
BBPCALL();
SYS.MuteFlag=0;
SYS.LOUDFlag=~SYS.LOUDFlag;
SelectINChannel(SYS.nTaskID);
}
break;
case KEY_1_LONG:
SYS.MuteFlag=0;
DISP.disptime=20;
DISP.KEYTIME++;
if(DISP.KEYTIME==6)
{
BBPCALL();
SYS.Radio_Chan=1;
SYS.Dispstatus=disp_Write_Chan;
Si4702_WriteChan(0);
DISP.KEYTIME=0;
}
break;
case KEY_2_LONG:
SYS.MuteFlag=0;
DISP.disptime=20;
DISP.KEYTIME++;
if(DISP.KEYTIME==8)
{
BBPCALL();
SYS.Radio_Chan=2;
SYS.Dispstatus=disp_Write_Chan;
Si4702_WriteChan(1);
DISP.KEYTIME=0;
}
break;
case KEY_3_LONG:
SYS.MuteFlag=0;
DISP.disptime=20;
DISP.KEYTIME++;
if(DISP.KEYTIME==8)
{
BBPCALL();
SYS.Radio_Chan=3;
SYS.Dispstatus=disp_Write_Chan;
Si4702_WriteChan(2);
DISP.KEYTIME=0;
}
break;
case KEY_4_LONG:
SYS.MuteFlag=0;
DISP.disptime=20;
DISP.KEYTIME++;
if(DISP.KEYTIME==8)
{
BBPCALL();
SYS.Radio_Chan=4;
SYS.Dispstatus=disp_Write_Chan;
Si4702_WriteChan(3);
DISP.KEYTIME=0;
}
break;
case KEY_5_LONG:
SYS.MuteFlag=0;
DISP.disptime=20;
DISP.KEYTIME++;
if(DISP.KEYTIME==8)
{
BBPCALL();
SYS.Radio_Chan=5;
SYS.Dispstatus=disp_Write_Chan;
Si4702_WriteChan(4);
DISP.KEYTIME=0;
}
break;
case KEY_MUTE:
BBPCALL();
SYS.MuteFlag=~SYS.MuteFlag;
break;
**/
default:
break;
}
if(g_Setting.GlobalFLAG.MuteFlag)
{
g_Setting.Globalsystem1.Dispstatus_fm=disp_mute;
if(FristMuteFlag==0)
{
Mute_Enable();
FristMuteFlag=1;
FristDisMuteFlag=0;
g_Setting.GlobalFLAG.DispTimeFlag=0;
}
}
else
{
if(FristDisMuteFlag==0)
{
g_Setting.Globalsystem1.Dispstatus_fm=disp_Freq;
UI_FM(g_Setting.Globalsystem1.Dispstatus_fm);
if(g_Setting.GlobalFLAG.ProgressivelyOKfLAG)
Mute_Disable();
FristDisMuteFlag=1;
FristMuteFlag=0;
g_Setting.GlobalFLAG.DispTimeFlag=0;
}
}
UI_FM(g_Setting.Globalsystem1.Dispstatus_fm);
if(g_Setting.GlobalDISP.disptime==0)
{
g_Setting.Globalsystem1.Dispstatus_fm=disp_Freq;
}
if(g_Setting.GlobalDISP.STCHECKTIME>2)//1400ms讀一次SI4702
{
SI4702_Read();
g_Setting.GlobalDISP.STCHECKTIME=0;
if(Data_read[0] & 0x01)
g_Setting.GlobalICON.Icon_ST=1;
else
g_Setting.GlobalICON.Icon_ST=0;
}
/**
if(g_Setting.GlobalFLAG.MuteFlag)
{
g_Setting.GlobalDISP.disptime=20;
g_Setting.Globalsystem1.SETMODE=0;
.Icon_MUTE=1;
SYS.Dispstatus=disp_setmodeVol;
if(FristMuteFlag1==0)
{
Mute_Enable();
FristMuteFlag1=1;
FristDisMuteFlag1=0;
SYS.DispTimeFlag=0;
}
}
else
{
if(FristDisMuteFlag1==0)
{
if(SYS.ProgressivelyOKfLAG)
Mute_Disable();
DISP.Icon_MUTE=0;
FristDisMuteFlag1=1;
FristMuteFlag1=0;
SYS.DispTimeFlag=0;
}
}
**/
/**
if(SYS.MediaPluINFlag)
{
SYS.nTaskID=TASK_MUSIC;
return SYS.nTaskID;
}
if(SYS.DispMediaMode)
TM1721_Write_All();
else
HT1621_Write_All();
**/
}
return g_Setting.Globalsystem1.nTaskID;
}
void Si4702_WriteChan(UINT8 iChan)
{
UINT8 Temp_Writedata;
UINT8 Temp_EEprom1,Temp_EEprom2;
Temp_Writedata=(g_Setting.Globalsystem1.g_CurFreq-875) & 0xFF;
if(g_Setting.Globalsystem1.RadioBand==1)
{
Temp_EEprom1=EEprom_band1_CurFreq;
Temp_EEprom2=EEprom_band1;
}
if(g_Setting.Globalsystem1.RadioBand==2)
{
Temp_EEprom1=EEprom_band2_CurFreq;
Temp_EEprom2=EEprom_band2;
}
if(g_Setting.Globalsystem1.RadioBand==3)
{
Temp_EEprom1=EEprom_band3_CurFreq;
Temp_EEprom2=EEprom_band3;
}
if(iChan==7)
I2C_Write_8bitROG(EEprom_Adr, Temp_EEprom1, Temp_Writedata);
else
I2C_Write_8bitROG(EEprom_Adr, Temp_EEprom2+(iChan*2), Temp_Writedata);
delay_ms(20);
}
/**
bit AutoChangeFreq(UINT8 Direct)
{
#define IIC_TRY_TIMES 500
bit ChangeOK=FALSE;
MSG keymsg2;
UINT16 ix=0;
//Hal_DisableAllInts();
while(1)
{
FeedWDT(250, 20);
Mute_Enable();
if(Direct)
SI4702_ChangeCurFreq(1);
else
SI4702_ChangeCurFreq(0);
if((Data_read[0] & 0x10)==0)
{
if(Data_read[1]>0x13)
{
//Mute_Disable();
//return 0;
ChangeOK=1;
}
}
DelayInMs(60);
SYS.Dispstatus=disp_Freq;
if(SYS.DispMediaMode)
TM1721_Write_All();
else
HT1621_Write_All();
keymsg2=GetMessage();
if(SYS.DispMediaMode==2)
{
switch(keymsg2)
{
case KEY_NEXT:
ChangeOK=TRUE;
break;
case KEY_PREV:
ChangeOK=TRUE;
break;
default:
break;
}
}
else
{
switch(keymsg2)
{
case KEY_NEXT:
ChangeOK=TRUE;
break;
case KEY_PREV:
ChangeOK=TRUE;
break;
default:
break;
}
}
if ( (ChangeOK==1)|| (ix>IIC_TRY_TIMES)) //條件成立或超時退出
{
SET_SEEK_0;
//I2C_WritePageDataEx(SI4702_adr, Data_writes, 2, 0, FALSE);
IIC_SetRegs(SI4702_adr, Data_writes, 2);
SYS.Dispstatus=disp_Freq;
Mute_Disable();
return TRUE;
}
else
ix++;
}
}
**/
void Progressively_Volume(UINT8 Volumetemp)
{
if(g_Setting.GlobalFLAG.FristIn)
{
Vtemp=0;
SetVolume(Vtemp);
if(g_Setting.Globalsystem1.nTaskID==TASK_FM)
{
Data_writes[7] |=Vtemp;
I2C_WritePageDataEx(SI4702_adr, Data_writes, 8, 0, FALSE);
//IIC_SetRegs(SI4702_adr, Data_writes, 8);
}
muteOFF();
}
VolumeCountTemp=100;
if(Vtemp<Volumetemp)
{
if((++VolumeCount)%VolumeCountTemp== 0)
{
Vtemp++;
SetVolume(Vtemp);
VolumeCount=1;
if(g_Setting.Globalsystem1.nTaskID==TASK_FM && (Vtemp<16))
{
Data_writes[7] |=Vtemp;
//IIC_SetRegs(SI4702_adr, Data_writes, 8);
I2C_WritePageDataEx(SI4702_adr, Data_writes, 8, 0, FALSE);
}
//if(Vtemp>3)
// muteOFF();
}
}
else
{
if(g_Setting.Globalsystem1.nTaskID==TASK_FM && RadioTempFlag)
{
Data_writes[7] |=0x0f;
//IIC_SetRegs(SI4702_adr, Data_writes, 8);
I2C_WritePageDataEx(SI4702_adr, Data_writes, 8, 0, FALSE);
RadioTempFlag=FALSE;
}
g_Setting.GlobalFLAG.ProgressivelyOKfLAG=1;
}
g_Setting.GlobalFLAG.FristIn=FALSE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -