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

📄 drv_dsp.c

📁 ROHM 公司BU9432:application:应用范围
💻 C
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************/
/*	[NAME]   :Drv_DSP.c														  */
/*	[OUTLINE]:																  */
/*	[HISTORY]:																  */
/*	[NOTE]   :TAB=4															  */
/******************************************************************************/
//#include <machine.h>  /*  Z80梡   */
#include "BU18703.h"			/*  CPU儗僕僗僞掕媊 */
#include "prototype.h"
#include "extern.h"
#include	"mcal.h"

#include	"System.h"
#include	"Parameter.h"

//UINT08 gu08_vol_temp;			//060214,for eq

/*----------------------------------------------------------------------------*/


//DSP傪弶婜壔偡傞偲偙傠丅
//	俴俬俢暵偵堦夞丅
//	俢俛俛丆俤俻丆俽俼丆俤倁俼側偳搳偘捈偟暔偵偵拲堄丅
/*------------------------------------------------------------------------------
	Track Jump Parameters
------------------------------------------------------------------------------*/
const UINT08 Tbl_JUMP_FF[8][3] =
{
//    Jump Puls Hight      Sled Kick Time       Sled Puls Hight
//    0xFD                 0xC0                 0xFE
	{ FF01_JPH,            FF01_SKT,            FF01_SPH           },	// FF01
	{ FF04_JPH,            FF04_SKT,            FF04_SPH           },	// FF04
	{ FF10_JPH,            FF10_SKT,            FF10_SPH           },	// FF10
	{ FF30_JPH,            FF30_SKT,            FF30_SPH           },	// FF30
	{ FF80_JPH,            FF80_SKT,            FF80_SPH           },	// FF80
	{ FF_LONG_JPH,         FF_LONG_SKT,         FF_LONG_SPH        },	// LongJumpFF		//YTC001 20041224 
	{ FF_SERACH_LOW_JPH,   FF_SERACH_LOW_SKT,   FF_SERACH_LOW_SPH  },	// SearchJumpFF_Low
	{ FF_SERACH_HIGH_JPH,  FF_SERACH_HIGH_SKT,  FF_SERACH_HIGH_SPH }	// SearchJumpFF_High
//	{ FF_LONG_JPH,         FF_LONG_SKT,         FF_LONG_SPH        }	// LongJumpFF
};

const UINT08 Tbl_JUMP_FR[8][3] =
{
	{ FR01_JPH,            FR01_SKT,            FR01_SPH           },	// FR01
	{ FR04_JPH,            FR04_SKT,            FR04_SPH           },	// FR04
	{ FR10_JPH,            FR10_SKT,            FR10_SPH           },	// FR10
	{ FR30_JPH,            FR30_SKT,            FR30_SPH           },	// FR30
	{ FR80_JPH,            FR80_SKT,            FR80_SPH           },	// FR80
	{ FR_LONG_JPH,         FR_LONG_SKT,         FR_LONG_SPH        },	// LongJumpFR			//YTC001 20041224
	{ FR_SERACH_LOW_JPH,   FR_SERACH_LOW_SKT,   FR_SERACH_LOW_SPH  },	// SearchJumpFR_Low
	{ FR_SERACH_HIGH_JPH,  FR_SERACH_HIGH_SKT,  FR_SERACH_HIGH_SPH }	// SearchJumpFR_High
//	{ FR_LONG_JPH,         FR_LONG_SKT,         FR_LONG_SPH        }	// LongJumpFR
};


const UINT08 Tbl_JUMP_WIDTH[] =
{
	0x00,		// JUMP_01
	0x02,		// JUMP_04
	0x05,		// JUMP_10
	0x0F,		// JUMP_30
	0x28,		// JUMP_80
	0x00,		// JUMP_LONG (DUMY)	//YTO001 20041224
	0x02,		// JUMP_SEARCH_LOW
	0x05		// JUMP_SEARCH_HIGH
};


//YTC003 20041230 堏摦
const UINT08 Tbl_JUMP_RATIO[8] =
				{	0x50,	// 0
					0x60,	// 1
					0x70,	// 2
					0x80,	// 3
					0x90,	// 4
					0xA0,	// 5
					0xB0	// 6
				};

#if	!LCD_DM
const	UINT08	EQSoundDatTbl[] = {
				0x00,					// EQ_NORMAL
				0x10,					// EQ_POPS
				0x20,					// EQ_JAZZ
				0x50,					// EQ_ROCK
				0x40					// EQ_CLASSIC
};
#endif

/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_InitDSP												  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void 														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
/*
void DrvDSP_InitDSP( void )
{
	DrvDSP_BIOS_XReset();		//YTC000 弶婜壔僐儅儞僪憲傞慜偵Xreset Xreset偲DSP_INIT偼儁傾偱丅
	DrvDSP_BIOS_InitCommon(  );

#if	0//AC0001 ROM	// SDC 20050207	壓傊堏摦
	gu08_servo_status  = B00000000;	//FocusSearch,Adjust梡
#endif

	switch( gu08_kind_VolCtrl & B00000110)										
	{
		case B00000010:															// 仜倁俼乮慡奐乯
			DrvDSP_BIOS_WriteReg( 0xE1,VOLUME_INIT_HPAMP1);
			break;

		case B00000100:
			DrvDSP_BIOS_WriteReg( 0xE1, Tbl_E1_EVR[gu08_num_Volume] );	//LID open/close懳墳
			break;

//		case B00000000:															// 仜倁俼乮峣傝乯
		default:
			DrvDSP_BIOS_WriteReg( 0xE1,VOLUME_INIT_HPAMP2);
			break;
	}
//B0004 <---

//B0004	DrvDSP_SetBassBoost( );										//LID open/close懳墳 

//	20041214 JOGGBLE	<PIN29>
//	奧暵偠帪偵堦夞僠僃僢僋
#if	1//AC0001 !ROM	// SDC 20050207
	gu08_servo_status = 0; //B00000000;	//FocusSearch,Adjust梡
#endif
	gu08_PowersaveMode = gu08_kind_DRAM;
//B0004 <---

	
//YTC003 20041230 JUMP_HIGHT 
	DrvDSP_BIOS_WriteReg( 0xFC, Tbl_JUMP_RATIO[ DrvKEY_GetkeyNumber( CPU_ADC_ADR7 ) ] );


	SetupDRAM(  );				//
	gi_ThreshSects = 32;		//

//	PlayList_Init(  );

	return;
}
*/
// =---------------------------------------------
// =    俢俼俙俵愝掕
// =---------------------------------------------
void SetupDRAM( void )
{
//	gu08_kind_DRAM = 0x06;		//16Mbit 16bit暆SDRAM 8bit-Use	20041214 TAP僙儗僋僩桳岠

//	BU9541-BU18704-A1偱偼 6/4/A/0偺係捠傝偺傒桳岠丅
//	DRAM_SIZE傕偙偙偱愝掕丅

#if 0//AC0001	ROM	// SDC 20050207
	switch ( gu08_kind_DRAM )
#else
	switch ( gu08_kind_DRAM & 0x0C )
#endif
	{
		case 0x00:				//  4Mbit  4bit暆EDO
//<41>	case 0x01:				//  4Mbit 16bit暆EDO
//      gl_dram_bend = 0x0003FFFF;
			gl_dram_Session_begin = ( 0x0003FFFF - 5 * 100 ) + 1;	//僙僔儑儞忣曬暘傪尭嶼偡傞
#if	0//AC0001 ROM	// SDC 20050207
			gu08_kind_DRAM_SIZE=0;	//	4M
#endif
			break;
		case 0x04:				// 16Mbit  4bit暆EDO
//<41>	case 0x05:				// 16Mbit 16bit暆EDO
#if	0//AC0001 ROM	// SDC 20050207
		case 0x06:				// 16Mbit 16bit暆SDRAM 8bit-Use
#endif
//<41>	case 0x07:				// 16Mbit 16bit暆SDRAM
//      gl_dram_bend = 0x000FFFFF;
			gl_dram_Session_begin = ( 0x000FFFFF - 5 * 100 ) + 1;	//僙僔儑儞忣曬暘傪尭嶼偡傞
#if	0//AC0001 ROM	// SDC 20050207
			gu08_kind_DRAM_SIZE=1;	// 16M
#endif
			break;
#if	0//AC0001 ROM	// SDC 20050207
		case 0x0A:				// 64Mbit 16bit暆SDRAM 8bit-Use
#else
		case 0x08:				// 64Mbit 16bit暆SDRAM 8bit-Use
#endif
//<41>	case 0x0B:				// 64Mbit 16bit暆SDRAM
//      gl_dram_bend = 0x003FFFFF;
			gl_dram_Session_begin = ( 0x003FFFFF - 5 * 100 ) + 1;	//僙僔儑儞忣曬暘傪尭嶼偡傞
#if	0//AC0001 ROM	// SDC 20050207
			gu08_kind_DRAM_SIZE=2;	// 16M
#endif
			DrvDSP_BIOS_WriteReg( 0xB1, 0x00 );	//A12,13傪DRAM傾僪儗僗偵丅
			break;
	}
//  gl_dram_send = (gl_dram_Session_begin - 1) - 1100;  // PlayList暘傪尭嶼偡傞
//	gl_dram_send = ( gl_dram_Session_begin - 1 ) - 1160;	// PlayList+ProgramList暘傪尭嶼偡傞
#if 1//AC0001 LCD_DM	//[dyna-DM]
	gl_dram_send = ( gl_dram_Session_begin - 1 ) - (1100 + PROGRAM_MAX);	// PlayList+ProgramList暘傪尭嶼偡傞
#else
	/*	PlayList + DirInfoSearchList + ProgramList暘傪尭嶼	*/
	gl_dram_send = ( gl_dram_Session_begin - 1 ) - (PLAY_LIST_SIZE + DIR_INFO_SEARCH_LIST_SIZE + PROGRAM_MAX);
#endif

	gl_PlayList_begin = gl_dram_send + 1;
#if 1//AC0001 LCD_DM	//[dyna-DM] FAT忣曬偺VolumeID偵忋彂偒偟偰偄傞忣曬偺曐懚梡椞堟妋曐
	gu32_ProgramList_begin = gl_PlayList_begin + 1100;		//ProgramList奐巒埵抲
#else	//LCD_DM
	gu32_DirInfoSearchList_begin = gl_PlayList_begin + PLAY_LIST_SIZE;
	gu32_ProgramList_begin = gu32_DirInfoSearchList_begin + DIR_INFO_SEARCH_LIST_SIZE;
#endif	//LCD_DM

	DrvDSP_BIOS_WriteRegMP3( 0x50, 0x81 );
	Common_Wait_ms( 1 );		//DRAM refresh start
	DrvDSP_BIOS_WriteRegMP3( 0x51, 0x80 | gu08_kind_DRAM );
	Common_Wait_ms( 1 );		//DARM巊梡奐巒 300兪SEC偱廩暘
	return;
}


#if	0//AC0001 ROM	// SDC 20050207
/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_CtrlAudio											  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void 														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
void DrvDSP_CtrlAudio( void )
{
}
#endif


#if	1//AC0001 !ROM	// SDC 20050207
void	checkPickupInEnd( void )
{
	if( gu16_timer_MovePickupIn == 0 )
	{
		DrvDSP_MovePickupIn_End(  );
	}
}
#endif


//YTC001 No15 20041223 
//奧傂傜偨偄傜丄僗儗僢僪堷偒崬傒巭傔傞
/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_MovePickupIn											  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void 														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn( void )
{
	if(gu08_sts_MovePickupIn != 0)
	{
		switch ( gu08_sts_MovePickupIn )
		{
			case 1:				/*      */
				DrvDSP_MovePickupIn1(  );
				break;
			case 2:				/*      */
				DrvDSP_MovePickupIn2(  );
				break;
			case 3:				/*      */
				DrvDSP_MovePickupIn3(  );
				break;
		}
		if(gu08_StsLid == OPEN)
		{
			DrvDSP_MovePickupIn_End();
		}
	}
	return;
}

/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_MovePickupIn1										  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void 														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn1( void )
{
	/*  僗儗僢僪僷儖僗崅偝  */
//9540  DrvDSP_BIOS_WriteReg(0xED,SPH_INIT);    /*      */
	DrvDSP_BIOS_WriteReg( 0xFE, Tbl_SPH_INIT[gu08_Mech] );	/*      */

#if	0//AC0001 ROM	// SDC 20050206
	if( DrvDSP_BIOS_ReadInner(  ) == LOW )
	{
		gu16_timer_MovePickupIn = 20;	/*      */
		/*  僩儔僢僉儞僌,僗儗僢僪   */
		DrvDSP_BIOS_WriteReg( 0xC1, 0x02 );	/*  OFF,嫮惂僼僅儚乕僪  */
		gu08_sts_MovePickupIn = 3;
	}
	else
#else
	if( DrvDSP_BIOS_ReadInner() )
#endif
	{
		gu16_timer_MovePickupIn = 800;	/*      */
		/*  僩儔僢僉儞僌,僗儗僢僪   */
		DrvDSP_BIOS_WriteReg( 0xC1, 0x03 );	/*  OFF,嫮惂儕僶乕僗    */
#if	0//Ac0001 ROM	// SDC 20050207
		gu08_sts_MovePickupIn = 2;
#endif
	}
#if	1//AC0001 !ROM	// SDC 20050207
	gu08_sts_MovePickupIn = 2;
#endif

	return;
}

/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_MovePickupIn2										  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void 														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn2( void )
{
#if	0//AC0001 ROM	// SDC 20050206
	if( DrvDSP_BIOS_ReadInner(  ) == LOW )
#else
	if( !DrvDSP_BIOS_ReadInner() )
#endif
	{
		DrvDSP_BIOS_Tracking_Off(  );

		gu16_timer_MovePickupIn = 20;	/*      */
		/*  僩儔僢僉儞僌,僗儗僢僪   */
		DrvDSP_BIOS_WriteReg( 0xC1, 0x02 );	/*  OFF,嫮惂僼僅儚乕僪  */
		gu08_sts_MovePickupIn = 3;
	}
	else
	{
#if	0//AC0001 ROM	// SDC 20050207
		if( gu16_timer_MovePickupIn == 0 )
		{
			DrvDSP_MovePickupIn_End(  );
		}
#else
		checkPickupInEnd();
#endif
	}

	return;
}

/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_MovePickupIn3										  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void 														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn3( void )
{
#if	0//AC0001 ROM	// SDC 20050206
	if( DrvDSP_BIOS_ReadInner(  ) == LOW )
#else
	if( !DrvDSP_BIOS_ReadInner() )
#endif
	{
#if	0//AC0001 ROM	// SDC 20050207
		if( gu16_timer_MovePickupIn == 0 )
		{
			DrvDSP_MovePickupIn_End(  );
		}
#else
	checkPickupInEnd();
#endif
	}
	else
	{
		DrvDSP_MovePickupIn_End(  );
	}

	return;
}


//	Sxxx
//	儊僇儈儏乕僩偼偐偗偰偄側偄丅丂嵞惗拞偺僄儔乕張棟傕偁傞偟丄屇傃弌偟懁偱
/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_MovePickupIn_End										  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void 														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn_End( void )
{
	DrvDSP_BIOS_Tracking_Off(  );
//	Common_Wait_ms( 50 );	//YTC001 No15 20041223
	gu08_sts_MovePickupIn = 0;

	return;
}




/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_Jump													  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void  														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
void DrvDSP_Jump( void )
{
//	UINT08 i, u08_SelectedJump;
	UINT08 u08_SelectedJump;
//	UINT08 Z1;
	UINT08 u08_JumpParam[4][2] ={ {0xFD}, {0xCD}, {0xFE} };

#if	0//AC0001 ROM	// SDC 20050208
	if( gu08_req_Jump == 0 )
	{							/*  Jump梫媮柍偟    */
		return;
	}
#else
  if( gu08_req_Jump )
  {
#endif
#if	0//AC0001 ROM	// SDC 20050208
	switch ( gu08_sts_Jump )
	{
		case 0:
#else
	if( !gu08_sts_Jump )
	{
#endif
#if	0//AC0001 ROM	// SDC 20050208
#if	ROM	// SDC 20050206
			if( DrvDSP_BIOS_ReadSubsyq(  ) == HIGH )
#else
			if( DrvDSP_BIOS_ReadSubsyq() )
#endif
			{
				return;
			}
#else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -