📄 drv_key.c
字号:
// for(i=0; i<6; i++)
// {
// if(ADKEY_SLESH_WIRE[i] < ad_value) break;
// }
// return(i);
// if ( ad_value > 0xCA ) {return 0;} // off 忋偼偙偺婰弎傛傝彫偝偄丅
// else if( ad_value > 0xB3 ) {return 1;} // 1
// else if( ad_value > 0x9A ) {return 2;} // 2
// else if( ad_value > 0x80 ) {return 3;} // 3
// else if( ad_value > 0x63 ) {return 4;} // 4
// else if( ad_value > 0x43 ) {return 5;} // 5
// else {return 6;} // 6
}
B0002 <---
*/
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvKEY_CheckOn */
/* [FUNCTION] : */
/* [RETURN] :UINT08 */
/* [PARAMETER]:UINT08 u08_key_now */
/* :UINT08 u08_key_old */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
UINT08 DrvKEY_CheckOn( UINT08 now_key, UINT08 old_key )
{
// 栠傝抣
// 0 OFF
// 1 !=専弌丅僠儍僞儕儞僌彍嫀拞
// 2 妋掕
#define CHATARING_TIMES (0x02)
static UINT08 chattering_count;
if( now_key == 0 )
{ //OFF
chattering_count = CHATARING_TIMES;
return KEY_OFF;
}
else if( now_key == old_key )
{ //==
if( --chattering_count == 0 )
{ //妋掕
chattering_count = CHATARING_TIMES;
return KEY_ON;
}
}
else
{ //!=
chattering_count = CHATARING_TIMES;
return KEY_CHATTER;
}
}
void Nop(void)
{
}
// 怴偟偄僉乕傪buffer偵愊傓丅
// 彨棃buffer偑憹偊傞偙偲傪峫椂偟偰娭悢壔
// 俁侽昩僞僀儅乕傕偙偙偱巇崬傓丅乮係價僢僩偼僉乕傾僋僔儑儞懁乯
// 20041206 嵟廔僉乕傾僒僀儞斉偵丅
// WIREDkey偲廳側偭偰偄傞僉乕偵曗惓傪偐偗偰偟傑偆丅
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvKEY_SaveKey */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvKEY_SaveKey( UINT08 new_key)
{
/* B0002 --->
if(new_key == REM_PLAY){new_key=KEY_PLAY;} //UI懁偱or巊偄偡傞偺傕傕偭偨偄側偄偺偱偙偙偱曗惓
if(new_key == REM_STOP){new_key=KEY_STOP;} //
if(new_key == REM_FF){new_key=KEY_FF;} //
if(new_key == REM_FR){new_key=KEY_FR;} //
if(new_key == REM_DIR_UP){new_key=KEY_DIR_UP;} //
if(new_key == KEY_STOP2){new_key=KEY_STOP;} //廩揹僗僞乕僩梡STOP丅俠俢惂屼撪晹偱偼STOP僉乕偲偍側偠埖偄
B0002 <---
*/
//B0006 --->
// gu08_KeyBuffer = new_key;
// gi16_timer_APC = CONST_TIMER_APC;
if( ( gu08_power_df == 0 ) || ( gu08_rec_f == 0 ) ) //AD
// if(gu08_power_df==0) //AP
{
gu08_KeyBuffer = new_key;
gi16_timer_APC = CONST_TIMER_APC;
}
else
{
switch( new_key )
{
case KEY_POWER:
// Nop();
// case KEY_POWER1: //AD
case KEY_POWER_OFF:
// Nop();
case KEY_EQ:
// Nop();
// case KEY_EQ1:
case KEY_UP:
// Nop();
case KEY_DOWN:
// case KEY_ALM1_ON:
// case KEY_ALM1_OFF:
// case KEY_ALM1_SET:
gu08_KeyBuffer = new_key;
gi16_timer_APC = CONST_TIMER_APC;
break;
}
}
return;
//B0006 <---
}
//B0006 --->
void DrvKEY_SaveKey1( UINT08 new_key)
{
gu08_KeyBuffer = new_key;
gi16_timer_APC = CONST_TIMER_APC;
return;
}
//B0006 <---
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvKEY_ScanSlideSW */
/* [FUNCTION] : */
/* [RETURN] : */
/* [PARAMETER]: */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
/* B0004 --->
void DrvKEY_ScanSlideSW( UINT08 no )
{
UINT08 tmp; //
tmp = *(SlideSWPort[no]) & SlideSW[no][SW_BIT];
// if( SlideSW[no][SW_BAK] != tmp )
if( SlideSwBak[no] != tmp )
{ //嵟廔妋掕!=崱偺忬懺
// if( ++SlideSW[no][SW_CNT] > SlideSW[no][SW_N] )
#if 0 // SDC 20050207 afterBUG SlideSW 偼僇僂儞僩弌棃側偄
if( ++SlideSW[no][SW_CNT] > SlideSwN[no] )
#else
if( SlideSW[no][SW_CNT] < ++SlideSwN[no] )
#endif
{ //妋掕丅
// SlideSW[no][SW_BAK] = tmp;
SlideSwBak[no] = tmp;
switch( no )
{
case SW_LID:
gu08_StsLid = ( tmp ) ? OPEN : CLOSE;
break;
case SW_HOLD:
gu08_sts_HOLDSW = tmp;
if( gu08_sts_HOLDSW )
DrvLCD_Hold_Off();
else DrvLCD_Hold_On();
break;
case SW_JOG:
break;
case SW_BBS:
if( tmp )
{
if( gu08_kind_BasBoost & 0x80 )
{
gu08_kind_BasBoost &= ~0x80;
DrvLCD_BassBoost_Off();
DrvDSP_SetBassBoost();
}
}else
{
if( !( gu08_kind_BasBoost & 0x80 ))
{
gu08_kind_BasBoost |= 0x80;
DrvLCD_BassBoost_On();
DrvDSP_SetBassBoost();
}
}
break;
}
}
}
else
{ //嵟廔妋掕偲曄傢傜偢丅僠儍僞庢傝僇僂儞僞傪侽僋儕傾偟偰丅
SlideSwN[no] = 0;
}
}
*/
void DrvKEY_ScanSlideSW( void )
{
UINT08 tmp; //
/* tmp = CPU_PIO_DPR & piLID_SW;
if( SlideSwBak[0] != tmp )
{ //嵟廔妋掕!=崱偺忬懺
if( 5 < ++SlideSwN[0] )
{ //妋掕丅
SlideSwBak[0] = tmp;
gu08_StsLid = ( tmp ) ? OPEN : CLOSE;
}
}
else
{ //嵟廔妋掕偲曄傢傜偢丅僠儍僞庢傝僇僂儞僞傪侽僋儕傾偟偰丅
SlideSwN[0] = 0;
} */
if( gu08_kind_Power )
{
tmp = DrvKEY_GetkeyNumber( CPU_ADC_ADR0 );
if( SlideSwBak[1] != tmp )
{ //嵟廔妋掕!=崱偺忬懺
if( 5 < ++SlideSwN[1] )
{ //妋掕丅
SlideSwBak[1] = tmp;
switch( tmp )
{
case KEY_POWER_OFF:
DrvKEY_SaveKey( KEY_POWER_OFF );
// Nop();
break;
case KEY_TU_ON:
DrvKEY_SaveKey( KEY_TU_ON );
// Nop();
break;
case KEY_SD_ON:
DrvKEY_SaveKey( KEY_SD_ON );
// Nop();
break;
/* case KEY_CD_ON:
// case KEY_MP3_ON:
//AC802 --->
if(CPU_LCD_SIODR3 & B00001000)
gu08_autoplay_sts = 1;
//AC802 <---
DrvKEY_SaveKey( KEY_CD_ON );
break; */ //no CD func. AP
case KEY_AUX_ON:
DrvKEY_SaveKey( KEY_AUX_ON );
// Nop();
break;
// case KEY_TAPE_ON: //AD
// DrvKEY_SaveKey( KEY_TAPE_ON );
// break;
case KEY_MP3_ON:
DrvKEY_SaveKey( KEY_MP3_ON );
// Nop();
break;
}
}
}
else
{ //嵟廔妋掕偲曄傢傜偢丅僠儍僞庢傝僇僂儞僞傪侽僋儕傾偟偰丅
SlideSwN[1] = 0;
}
}
}
//B0004 <---
void DrvKEY_ScanAlm1SW( void )
{
UINT08 tmp_alm1; //
tmp_alm1=CPU_ADC_ADR6;
// if( gu08_kind_Alm1 )
// {
tmp_alm1 = DrvKEY_GetkeyAlm1( CPU_ADC_ADR6 );
if( Alm1SwBak[1] != tmp_alm1 )
{ //嵟廔妋掕!=崱偺忬懺
// if( 5 < ++SlideSwN[1] )
if( 3 < ++Alm1SwN[1] )
{ //妋掕丅
Alm1SwBak[1] = tmp_alm1;
// gu08_test_buffer=tmp_alm1; //test
switch( tmp_alm1)
{
case KEY_ALM1_OFF:
DrvKEY_SaveKey( KEY_ALM1_OFF );
// Nop();
break;
case KEY_ALM1_ON:
DrvKEY_SaveKey( KEY_ALM1_ON );
// Nop();
break;
case KEY_ALM1_SET:
DrvKEY_SaveKey( KEY_ALM1_SET );
// Nop();
break;
}
}
}
else
{ //嵟廔妋掕偲曄傢傜偢丅僠儍僞庢傝僇僂儞僞傪侽僋儕傾偟偰丅
Alm1SwN[1] = 0;
}
// }
}
/*----------------------------------------*/
void DrvKEY_ScanAlm2SW( void )
{
UINT08 tmp_alm2; //
tmp_alm2=CPU_ADC_ADR7;
// if( gu08_kind_Alm1 )
// {
tmp_alm2= DrvKEY_GetkeyAlm2( CPU_ADC_ADR7 );
if( Alm2SwBak[1] != tmp_alm2)
{ //嵟廔妋掕!=崱偺忬懺
// if( 5 < ++SlideSwN[1] )
if( 3 < ++Alm2SwN[1] )
{ //妋掕丅
Alm2SwBak[1] = tmp_alm2;
// gu08_test_buffer=tmp_alm2; //test
switch( tmp_alm2)
{
case KEY_ALM2_OFF:
DrvKEY_SaveKey( KEY_ALM2_OFF );
// Nop();
break;
case KEY_ALM2_ON:
DrvKEY_SaveKey( KEY_ALM2_ON );
// Nop();
break;
case KEY_ALM2_SET:
DrvKEY_SaveKey( KEY_ALM2_SET );
// Nop();
break;
}
}
}
else
{ //嵟廔妋掕偲曄傢傜偢丅僠儍僞庢傝僇僂儞僞傪侽僋儕傾偟偰丅
Alm2SwN[1] = 0;
}
// }
}
/* B0002 --->
// Sxxx 20041026 NEW
// step1 DC-IN偼偁偲偱峫椂
// 20041202 俉夞壛嶼暯嬒傪庢偭偰傒傞丅 侾俀倣俽俤俠仏俉佮侾侽侽倣俽俤俠
// 20041216 壛嶼暯嬒晄梫丅
// ----------------------------------------------
// 揹抮揹埑僠僃僢僋
// ----------------------------------------------
// gu08_sts_battery = B00000000 儚乕僯儞僌儗儀儖埲忋丗廩暘梋桾偁傝
// gu08_sts_battery = B00000001 僔儍僢僩僟僂儞埲忋 儚乕僯儞僌埲壓
// gu08_sts_battery = B00000011 懄抐埲忋 僔儍僢僩僟僂儞埲壓丒俆昩僇僂儞僩拞
// gu08_sts_battery = B00000111 懄抐埲忋 僔儍僢僩僟僂儞埲壓丒俆昩僇僂儞僩廔椆->揹尮抐傊
// gu08_sts_battery = B00001111 懄抐埲壓
// gu08_sts_battery = B1xxxxxxx AC傾僟僾僞桳
void DrvCCT_CheckBattery( void )
{
#define DCIN_ARI (00) //L偱DC_IN桳傝 20041207assigin
//#define DCIN_ARI (piDC_IN) //H偱DC_IN桳傝
// YTC004 20050103 No detect Battery at Jump
if( gu08_req_Jump != 0 )
{
gu16_timer_battery = CONST_BATTERY_COUNTER;
return;
}
gu08_battery = (CPU_ADC_ADR1); //
if(gu08_battery > CONST_BATTERY_WARNING)
{
gu08_sts_battery = B00000000; //梋椡偨偭傉傝
gu16_timer_battery = CONST_BATTERY_COUNTER;
}
else if(gu08_battery > CONST_BATTERY_EMPTY)
{
gu08_sts_battery = B00000001; //warning
gu16_timer_battery = CONST_BATTERY_COUNTER;
}
else if(gu08_battery > CONST_BATTERY_SHUTDOWN)
{
gu08_sts_battery = B00000011; //EMPTY
if(gu16_timer_battery ==0)
{ //5昩宱夁偟偨 -> 懄抐埖偄
gu08_sts_battery = B00000111; //EMPTY5SEC
}
}
else
{ //懄抐
gu08_sts_battery = B00001111; //SHUTDOWN
}
// YTC004 20050103 No detect Battery at Jump >>>
// //DC_INcheck
// //With [BATT]Icon (ROM save)
if((CPU_SIO2_PIODR & piDC_IN) == DCIN_ARI)
{ //DC-IN擖偭偰傞丅
gu08_sts_battery |= B10000000; //DC-IN桳
// DrvLCD_Battery_Off();
}
// else
// {
// if(gu08_sts_battery == 0)
// {
// DrvLCD_Battery_Off();
// }
// else
// {
// DrvLCD_Battery_On(); //YTC000 偪傚傫儈僗~~丅
// }
// }
// <<<
return;
}
B0002 <---
*/
//B0004
void DrvKEY_RemoteKey( void )
{
volatile UINT08 i;
const UINT08 Tbl_REMO_CT[][2] =
{
{0x03, KEY_PMODE}, //ST_MONO //erase
// {0x03, KEY_CLKSET},
{0x01, KEY_PROG}, //Clk set/Pst
{0x07, KEY_FF},
// {0x07,KEY_FR_SEARCH},
{0x08, KEY_FR},
// {0x08,KEY_FR_SEARCH},
{0x0F, KEY_STOP},
{0x14, KEY_PLAY}, //play //band
{0x02, KEY_POWER},
{0x0C, KEY_UP},
{0x0D, KEY_DOWN},
{0x1C, KEY_SD},
{0x18, KEY_TUNER}, //tuner/band
{0x04, KEY_EQ},
{0x06, KEY_DIR_DOWN}, //dir+/pst+
{0x05, KEY_DIR_UP}, //dir - /pst-
// {0x0B, KEY_TEST},
{0x0B, KEY_SNOOZE}, //snooze/display
{0x0E, KEY_FUNC}, //ap024,060301
{0x11, KEY_AUX},
// {0x10, KEY_TAPE},
{0x10, KEY_MP3},
// {0x0A, KEY_FUNC1},
{0x0A, KEY_FUNC2},
{0x12, KEY_ALM1},
// {0x13, KEY_FUNC2},
{0x13, KEY_ALM2},
// {0x1A, KEY_FUNC3}
{0x1A, KEY_SLEEP},
// {0x1A, KEY_SLEEP}
{0x15, KEY_TEN_UP}, //10+
{0x16, KEY_TEN_DOWN} //10-
};
if ( gu08_timer_remote == 0 )
gu08_RCR_Key = 0;
if( gu08_RCR_sts != 0 )
{
gu08_RCR_sts = 0;
// for( i = 0; i < 19; i++ )
for( i = 0; i < 24; i++ )
{
if( Tbl_REMO_CT[i][0] == gu08_RCR_data )
{
gu08_RCR_Key = Tbl_REMO_CT[i][1];
gu08_timer_remote = 25;
// gu16_timer_wait=20;
return;
}
else
{
gu08_RCR_Key = 0;
}
}
}
return;
}
/*----------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -