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

📄 drv_key.c

📁 ROHM 公司BU9432:application:应用范围
💻 C
📖 第 1 页 / 共 2 页
字号:
//	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 + -