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

📄 drv_dsp_adjust.c

📁 ROHM 公司BU9432:application:应用范围
💻 C
📖 第 1 页 / 共 5 页
字号:

			if( mu08_Counter != 0 )	//(--mu08_Counter !=0)
			{
				mu08_Counter--;
				break;
			}

			mu08_Counter = SPEED_MOVE_LENS;	//

			// Update Lens Position
			if( mu08_MoveLensSC & 0x0F )
			{
				// Up
				if( mu08_LensPosition == 0x00 )
				{
					DrvDSP_BIOS_WriteReg( 0xC0, 0x00 );
//B0003					DrvDSP_BIOS_MMute2_On(  );
					DrvDSP_BIOS_WriteReg( 0xC8, Tbl_F_SEARCH[gu08_Mech] );	//

					mu08_MainSC = ADJUST_END;
					mu08_MoveLensSC = DONE_LENS_MOVE;
					break;
				}
				else
				{
					mu08_LensPosition++;
				}
			}
			else
			{
				// Down
//				if( mu08_LensPosition == ( UINT08 ) LENS_DOWN_POS )
				if( mu08_LensPosition == Tbl_LENS_DOWN_POS[gu08_Mech] )
				{
					if(gu08_TimerAdjustSub ==0)
					{
						mu08_MoveLensSC = DONE_LENS_MOVE;
					}
					break;
				}
				else
				{
					mu08_LensPosition--;
				}
			}
#if	ROM	// SDC 20050209
			DrvDSP_BIOS_WriteReg( 0xC8, mu08_LensPosition );
#else
			DrvDSP_BIOS_WriteLensPosition();
#endif
			break;
	}
}


/*------------------------------------------------------------------------------
	[NAME]     :ReadyOffset
	[FUNCTION] :
	[RETURN]   :void
	[PARAMETER]:void
------------------------------------------------------------------------------*/
void ReadyOffset( void )
{
#if	ROM	// SDC 20050209
	if( gu08_sts_MovePickupIn )
	{
		return;	//	->SLED堷崬廔傢偭偰偄側偄
	}

	// Check Done Lens Down
	if( mu08_MoveLensSC != DONE_LENS_MOVE )
	{
		return;	//	->LENS DOWN廔傢偭偰偄側偄
	}
#else
  if( !gu08_sts_MovePickupIn &&
	 ( mu08_MoveLensSC == DONE_LENS_MOVE ))
  {
#endif
	// Meas. Condition
//	DrvDSP_BIOS_WriteReg( 0xD2, 0x35 );
	DrvDSP_BIOS_WriteReg( 0xD2, 0x25 );
	DrvDSP_BIOS_WriteReg( 0xD5, 0x00 );

	mu08_MainSC = ADJUST_END;
#if	!ROM	// SDC 20050209
  }
#endif
}


/*------------------------------------------------------------------------------
	[NAME]     :AdjustOfsInput
	[FUNCTION] :
	[RETURN]   :void
	[PARAMETER]:void
------------------------------------------------------------------------------*/
void AdjustOfsInput( void )
{
	switch ( mu08_SubSC )
	{
		case OFFSET_START:
			// RF Gain, APC Ref. Voltage
#if	ROM	// SDC 20050209
			DrvDSP_BIOS_WriteReg( 0x61, ( gu08_kind_Gain << 4 ) | 0x05 );
#else
			DrvDSP_BIOS_WriteGain();
#endif

//			SetFilter4InputOffset(  );
			SendMechTable( (UINT08 *)Tbl_FILTER_FO_TR, sizeof( Tbl_FILTER_FO_TR ) );
			SendMechTable( (UINT08 *)Tbl_FILTER_4_OFS, sizeof( Tbl_FILTER_4_OFS ) );
#if	ROM	// SDC 20050209
			InitOffset(  );
#else
			SendTable( (UINT08 *)Tbl_INIT_OFFSET, sizeof(Tbl_INIT_OFFSET) );
#endif
			mu08_Counter = 8;	// Wait 16msec
			// Because, chnge value offsets

			mu08_SubSC = OFFSET_LOOP;
			mu08_Kind = OFFSET_NOP;

		case OFFSET_LOOP:
			switch ( mu08_Kind )
			{
				case OFFSET_NOP:
					if( --mu08_Counter )
					{
						return;
					}
#if	ROM	// SDC 20050209
					mu08_Kind = OFFSET_F;
#else
					mu08_Kind = OFFSET_F + 1;
				case OFFSET_F:
					mu08_Kind--;
#endif
					mu08_Parameter = OFS_ANA_INIT_EF;
					break;

#if	ROM	// SDC 20050209
				case OFFSET_F:
					mu08_Kind = OFFSET_E;
					mu08_Parameter = OFS_ANA_INIT_EF;
					break;
#endif

				case OFFSET_E:
#if	ROM	// SDC 20050209
					mu08_Kind = OFFSET_BD;
#else
				case OFFSET_BD:
					mu08_Kind--;
#endif
					mu08_Parameter = OFS_ANA_INIT_ACBD;
					break;

#if	ROM	// SDC 20050209
				case OFFSET_BD:
					mu08_Kind = OFFSET_AC;
					mu08_Parameter = OFS_ANA_INIT_ACBD;
					break;
#endif

				case OFFSET_AC:
#if	ROM	// SDC 20050209
					mu08_Kind = OFFSET_NOP;
					mu08_MainSC = ADJUST_END;
#else
//					SendMechTable( (UINT08 *)Tbl_FILTER_FO_TR, sizeof( Tbl_FILTER_FO_TR ) );	//#050308.i

				case OFFSET_TD:
					mu08_Kind--;

					SendTable( (UINT08 *)Tbl_CLEAR_DSP_RAM, sizeof(Tbl_CLEAR_DSP_RAM) );	// YTC008 20050110
					break;

				case OFFSET_FD:
					mu08_Kind = OFFSET_NOP;
					mu08_MainSC = ADJUST_END;
#endif
					return;
			}
#if	ROM	// SDC 20050209
			DrvDSP_BIOS_WriteReg( 0xD0, mu08_Kind << 4 );
#else
			DrvDSP_BIOS_KindStart();
#endif
			mu08_SubSC = OFFSET_ADJUST;
			break;

		case OFFSET_ADJUST:
			if( DrvDSP_BIOS_ReadBusy(  ) )
			{
#if	ROM	// SDC 20050209
				mu08_MeasResult = DrvDSP_BIOS_ReadReg( 0xDE );
#else
				mu08_MeasResult = DrvDSP_BIOS_ReadResult();
#endif

#if	ROM	// SDC 20050209
				if( ( mu08_Kind == OFFSET_AC ) || ( mu08_Kind == OFFSET_BD ) )
#else
			  if( mu08_Kind > OFFSET_TD )
			  {
				if( mu08_Kind <= OFFSET_BD )
#endif
				{
					// AC, BD
					if( mu08_MeasResult < OFS_ANA_JUDGE_ACBD )
					{
						if( mu08_Parameter != 0x00 )
						{
							DrvDSP_BIOS_WriteReg( 0x60 + mu08_Kind, --mu08_Parameter );
							break;
						}
					}
				}
				else
				{
					// E, F
					if( mu08_MeasResult > OFS_ANA_JUDGE_EF )
					{
						if( mu08_Parameter != 0x07 )
						{
							DrvDSP_BIOS_WriteReg( 0x60 + mu08_Kind, ++mu08_Parameter );
							break;
						}
					}
				}
#if	!ROM	// SDC 20050209
				// Store Result Offset
				stInfoArea.AdjustOffset[gu08_kind_Gain][mu08_Kind - 4] =mu08_Parameter;
			  }
#endif
				// Stop Meas.
#if	ROM	// SDC 20050209
				DrvDSP_BIOS_WriteReg( 0xD0, 0x00 );
#else
				DrvDSP_BIOS_00End();
#endif

#if	ROM	// SDC 20050209
				// Store Result Offset
				stInfoArea.AdjustOffset[gu08_kind_Gain][mu08_Kind - 4] =mu08_Parameter;
#endif

				CancelOffset(  );
				mu08_SubSC = OFFSET_LOOP;
			}
			break;
	}
}


#if	ROM	// SDC 20050209
/*------------------------------------------------------------------------------
	[NAME]     :AdjustOfsTdFd
	[FUNCTION] :
	[RETURN]   :void
	[PARAMETER]:void
------------------------------------------------------------------------------*/
void AdjustOfsTdFd( void )
{
	switch ( mu08_SubSC )
	{
		case OFFSET_START:
//			SetFilter4TdFd(  );
//			SendMechTable( (UINT08 *)Tbl_FILTER_FO_TR, sizeof( Tbl_FILTER_FO_TR ) );
			mu08_Kind = OFFSET_NOP;

		case OFFSET_LOOP:
			switch ( mu08_Kind )
			{
				case OFFSET_NOP:
					mu08_Kind = OFFSET_TD;
					break;

				case OFFSET_TD:
					mu08_Kind = OFFSET_FD;
					break;

				case OFFSET_FD:
					mu08_Kind = OFFSET_NOP;
					mu08_MainSC = ADJUST_END;
					return;
			}

//			DrvDSP_BIOS_WriteReg( 0xEF, 0x80 );
//			DrvDSP_BIOS_WriteReg( 0xEF, 0x00 );
			SendTable( (UINT08 *)Tbl_CLEAR_DSP_RAM, sizeof(Tbl_CLEAR_DSP_RAM) );	// YTC008 20050110

			DrvDSP_BIOS_WriteReg( 0xD0, mu08_Kind << 4 );
			mu08_SubSC = OFFSET_ADJUST;
			break;

		case OFFSET_ADJUST:
			if( DrvDSP_BIOS_ReadBusy(  ) )
			{
				mu08_MeasResult = DrvDSP_BIOS_ReadReg( 0xDE );

				// Stop Meas.
				DrvDSP_BIOS_WriteReg( 0xD0, 0x00 );

				CancelOffset(  );
				mu08_SubSC = OFFSET_LOOP;
			}
			break;
	}
}
#endif


/*------------------------------------------------------------------------------
	[NAME]     :AdjustOfsSd
	[FUNCTION] :
	[RETURN]   :void
	[PARAMETER]:void
------------------------------------------------------------------------------*/
void AdjustOfsSd( void )
{
#if	ROM	// SDC 20050209
	switch ( mu08_SubSC )
	{
		case OFFSET_START:
#else
	if( mu08_SubSC == OFFSET_START )
	{
#endif
//			SetFilter4Sd(  );
//			SendMechTable( (UINT08 *)Tbl_FILTER_SD, sizeof( Tbl_FILTER_SD ) );
			SendMechTable( (UINT08 *)Tbl_FILTER_FO_TR, sizeof( Tbl_FILTER_FO_TR ) );

//			DrvDSP_BIOS_WriteReg( 0xEF, 0x80 );
//			DrvDSP_BIOS_WriteReg( 0xEF, 0x00 );
			SendTable( (UINT08 *)Tbl_CLEAR_DSP_RAM, sizeof(Tbl_CLEAR_DSP_RAM) );	// YTC008 20050110

#if	ROM	// SDC 20050209
			DrvDSP_BIOS_WriteReg( 0xD0, mu08_Kind << 4 );
			mu08_Kind = OFFSET_SD;
#else
			mu08_Kind = OFFSET_SD;							// afterBUG
			DrvDSP_BIOS_KindStart();
#endif
			mu08_SubSC = OFFSET_ADJUST;
#if	ROM	// SDC 20050209
			break;

		case OFFSET_ADJUST:
#else
	}else
	{
#endif
			if( DrvDSP_BIOS_ReadBusy(  ) )
			{
#if	ROM	// SDC 20050209
				mu08_MeasResult = DrvDSP_BIOS_ReadReg( 0xDE );
#else
				mu08_MeasResult = DrvDSP_BIOS_ReadResult();
#endif

				// Stop Meas.
#if	ROM	// SDC 20050209
				DrvDSP_BIOS_WriteReg( 0xD0, 0x00 );
				mu08_MainSC = ADJUST_END;
#else
				DrvDSP_BIOS_AdjEnd();
#endif

				CancelOffset(  );

				SendMechTable( (UINT08 *)Tbl_FILTER_SD, sizeof( Tbl_FILTER_SD ) );

				mu08_Kind = OFFSET_NOP;
			}
#if	ROM	// SDC 20050209
			break;
#endif
	}
}


/*------------------------------------------------------------------------------
	[NAME]     :CancelOffset
	[FUNCTION] :
	[RETURN]   :void
	[PARAMETER]:void
				UINT08 mu08_MeasResult
------------------------------------------------------------------------------*/
void CancelOffset( void )
{
	mu08_Parameter = 0x80;

	if( mu08_MeasResult > 0x80 )
	{
		mu08_Parameter -= ( mu08_MeasResult - 0x80 );
#if	ROM	// SDC 20050209
		DrvDSP_BIOS_WriteReg( 0x90 | mu08_Kind, mu08_Parameter );
#endif
	}
#if	ROM	// SDC 20050209
	else if( mu08_MeasResult < 0x80 )
#else
	if( mu08_MeasResult < 0x80 )
#endif
	{
		mu08_Parameter += ( 0x80 - mu08_MeasResult );
#if	ROM	// SDC 20050209
		DrvDSP_BIOS_WriteReg( 0x90 | mu08_Kind, mu08_Parameter );
#endif
	}
#if	!ROM	// SDC 20050209
	if( mu08_MeasResult != 0x80 )
//#if	ROM	// SDC 20050209
		DrvDSP_BIOS_WriteReg( 0x90 | mu08_Kind, mu08_Parameter );
//#else
//		DrvDSP_BIOS_WriteResult();
//#endif
#endif

	// Store Result Offset
	stInfoArea.AdjustOffset[gu08_kind_Gain][mu08_Kind + 3] = mu08_Parameter;

#if CHECK_OFFSET
	DrvDSP_BIOS_WriteReg( 0xD0, mu08_Kind << 4 );
	Common_Wait_ms( 10 );
	while( TRUE )
	{
		if( DrvDSP_BIOS_ReadBusy(  ) )
		{
			mu08_MeasResult = DrvDSP_BIOS_ReadReg( 0xDE );
			DrvDSP_BIOS_WriteReg( 0xD0, 0x00 );
			break;
		}
	}

	mu08_ResultOffset[gu08_kind_Gain][mu08_Kind-1] =mu08_MeasResult;
#endif
}


#if	!ROM	// SDC 20050209
void	StoreRfOffset( UINT08 u08_RfOffset )
{
	DrvDSP_BIOS_WriteReg( 0x9C, u08_RfOffset );

	// Store Result
	gu08_9C_RfShift = u08_RfOffset;
	stInfoArea.AdjustOffset[gu08_kind_Gain][11] = u08_RfOffset;
}
#endif


/*------------------------------------------------------------------------------
	[NAME]     :FitRfFok
	[FUNCTION] :
	[RETURN]   :void
	[PARAMETER]:void
------------------------------------------------------------------------------*/
/*void FitRfFok( void )
{
	UINT08 u08_RfOffset;

	u08_RfOffset = 0x0F;
	while( TRUE )
	{
		// Set RF Offset
		DrvDSP_BIOS_WriteReg( 0x9C, u08_RfOffset );

//		Common_Wait_ms( 5 );	//Sxxx 20041019 偨傑偵俥俷俲棫偪偭傁側偟偵側傞		// YTC001 20041224
		Common_Wait_ms( 1 );	//嵟掅20usec偺懸偪偑昁梫		// YTC001 20041224

		if( DrvDSP_BIOS_GetStatus(  ) & B00000010 )
		{
			// FOK H
			break;
		}

#if	ROM	// SDC 20050209
		if( u08_RfOffset == 0x00 )
#else
		if( u08_RfOffset-- == 0x00 )
#endif
		{
			// Store Result
#if	ROM	// SDC 20050209
			gu08_9C_RfShift = u08_RfOffset++;	// 1 step down			// YTC001 20041224
			DrvDSP_BIOS_WriteReg( 0x9C, u08_RfOffset );					// YTC001 20041224
			stInfoArea.AdjustOffset[gu08_kind_Gain][11] = u08_RfOffset;
#else
			StoreRfOffset( ++u08_RfOffset );	// 1 step down
#endif
			return;
		}
#if	ROM	// SDC 20050209
		else
		{
			u08_RfOffset--;
		}
#endif
	}

	if( u08_RfOffset >= 0x0D )
		u08_RfOffset = 0x0F;
	else
		u08_RfOffset += 2;		// 2 step down

#if	ROM	// SDC 20050209
	DrvDSP_BIOS_WriteReg( 0x9C, u08_RfOffset );

	// Store Result
	gu08_9C_RfShift = u08_RfOffset;
	stInfoArea.AdjustOffset[gu08_kind_Gain][11] = u08_RfOffset;
#else
	StoreRfOffset( u08_RfOffset );
#endif
	mu08_MainSC = ADJUST_END;
}
*/

#if	ROM	// SDC 20050209
/*------------------------------------------------------------------------------
	[NAME]     :InitOffset
	[FUNCTION] :
	[RETURN]   :void
	[PARAMETER]:void
------------------------------------------------------------------------------*/
void InitOffset( void )
{
	SendTable( (UINT08 *)Tbl_INIT_OFFSET, sizeof(Tbl_INIT_OFFSET) );

	return;
}
#endif

⌨️ 快捷键说明

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