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

📄 system_servo.c

📁 Sunplus 8202S source code.
💻 C
字号:
/*
*  Terry,2004/1/28 09:51AM
*/

#ifdef SPHE8202//define 8202 SERVO TRAY SENSOR,cmchang
	#ifdef EMU_BOARD_256_SHARE
		        #define TRAY_IS_IN_GPIO		84
		        #define TRAY_IS_OUT_GPIO	85
	
	#elif defined(EMU_BOARD_216_PIN)
			
			#define DISC_IS_IN_GPIO		8
			#define TRAY_IS_IN_GPIO		9
			#define TRAY_IS_OUT_GPIO	10
			#define SRV_TRIG_GPIO		70
	#elif defined(EMU_BOARD_256_NON_SHARE)
			
	#elif defined(MP_BOARD_256_PIN_NON_SHARE)
			#ifdef PORTABLE_DVD
				#define TRAY_IS_IN_GPIO 	6  //99	//pin232
				#define TRAY_IS_OUT_GPIO	18 //98 //pin231		
				#define SRV_TRIG_GPIO		97  //pin230
			#else
				#define TRAY_IS_IN_GPIO 	5
				#define DISC_IS_IN_GPIO		8
				#define TRAY_IS_OUT_GPIO	18		
				#define SRV_TRIG_GPIO		97  //pin230
			#endif
	#elif defined(MP_BOARD_216_PIN_NON_SHARE)//kenny 2004/7/14
			#define TRAY_IS_IN_GPIO		70
			#define TRAY_IS_OUT_GPIO	71
			#define SRV_TRIG_GPIO		15  //pin65
	#elif defined(MP_BOARD_216_PIN)
			#define TRAY_IS_IN_GPIO		70
			#define TRAY_IS_OUT_GPIO	71
			
	#elif defined(MP_BOARD_256_PIN_SHARE)
			#define TRAY_IS_IN_GPIO		5
			#define TRAY_IS_OUT_GPIO	18		
	
	
	#endif

	#if defined(PORTABLE_DVD)
		//#define LOAD_IN_GPIO		56
		//#define LOAD_OUT_GPIO		55
		#define DISC_IS_IN_GPIO		55  //100
	#endif

//#else //define 8200 SERVO TRIGER GPIO
	//#define SRV_TRIG_GPIO		14
#endif


static inline void system_init_servo_var(void)
{
#ifdef DVD_SERVO
#ifdef PREAMP_GPIO_ENABLE
	gbSrvFuncSW = 0x01;
#else
	gbSrvFuncSW = 0x00;
#endif

#ifdef TRAY_AVAILABLE
	gbSrvFuncSW |= 0x02;
#endif
#ifdef DISC_TYPE_RETRY
	gbSrvFuncSW |= 0x04;	
#endif
#ifdef CHANGE_TRAY_DIRECTION_FUNC
	gbSrvFuncSW |= 0x08;
#endif
#ifdef POWER_ON_TOPDOOR_PRESTOP
	gbSrvFuncSW |= 0x10;
#endif
#ifdef POWER_ON_SERVO_STARTUP
	gbSrvFuncSW |= 0x20;
#endif
#ifdef PH0PH0_STD
	gbSrvFuncSW |= 0x40;
#endif

#ifdef NEW_DEBOUNCE_COUNTER
	gbDebounce = NEW_DEBOUNCE_COUNTER;
#endif

// SERVO Eject Speed
#ifdef TRAY_SPEED
gbEjectSpeed = TRAY_SPEED;
#endif

#ifdef TRAY_OUT_SPEED1
gbEjectSpeed1 = TRAY_OUT_SPEED1;
#endif

#ifdef TRAY_OUT_SPEED2
gbEjectSpeed2 = TRAY_OUT_SPEED2;
#endif

#ifdef TRAY_IN_SPEED1
gbEjectSpeed3 = TRAY_IN_SPEED1;
#endif

#ifdef TRAY_IN_SPEED2
gbEjectSpeed4 = TRAY_IN_SPEED2;
#endif

#ifdef TRAY_OUT_CNT
gbTray_Out_Cnt = TRAY_OUT_CNT;
#endif

#ifdef TRAY_IN_CNT
gbTray_In_Cnt = TRAY_IN_CNT;
#endif

#ifdef TRAY_OUT_BRAKE_TIMER
gbTrayOutBrakeTimer=TRAY_OUT_BRAKE_TIMER;
#endif

// 8202 SERVO TRAY Sensor,cmchang
#ifdef TRAY_IS_IN_GPIO
    gbGPIO_TrayIsIn = TRAY_IS_IN_GPIO;
#endif
#ifdef TRAY_IS_OUT_GPIO
    gbGPIO_TrayIsOut = TRAY_IS_OUT_GPIO;
#endif
#ifdef DISC_IS_IN_GPIO
    gbGPIO_DiscIsIn = DISC_IS_IN_GPIO;
#endif

#ifdef DISC_IS_STANDBY_GPIO
    gbGPIO_TrayIsMid = DISC_IS_STANDBY_GPIO;
#endif

#ifdef SLED_IS_OUT_GPIO
    gbGPIO_SledIsOut = SLED_IS_OUT_GPIO;
#endif

// 8202 SERVO DeBUG LED2, longson
#ifdef SRV_TRIG_GPIO
	gbGPIO_TrigLED1 = SRV_TRIG_GPIO;
#endif

#endif

// 8202 SERVO LOAD IN/OUT GPIO  2004/07/20/hcchang
#ifdef LOAD_IN_GPIO
    gbGPIO_LoadIn = LOAD_IN_GPIO;
#endif
#ifdef LOAD_OUT_GPIO
    gbGPIO_LoadOut = LOAD_OUT_GPIO;
#endif

// 8202 Servo Table
#ifdef SPHE8202
	extern BYTE (*_gpbEQSetting)[4];
#ifdef	IC_8202D
	extern BYTE _gpbEQ_PS2P5[][4];
	_gpbEQSetting = _gpbEQ_PS2P5;
#elif	defined(IC_8202E)
	extern BYTE _gpbEQ_PJ8202A[][4];
	_gpbEQSetting = _gpbEQ_PJ8202A;
#else
	if (regs0->stamp==0x82)	// PS2.1
	{
		extern BYTE _gpbEQ_PS2P1[][4];
		_gpbEQSetting = _gpbEQ_PS2P1;
	}
	else	// PA8202
	{
		extern BYTE _gpbEQ_PA8202[][4];
		_gpbEQSetting = _gpbEQ_PA8202;
	}
#endif
#endif

//------------------Slot-in--------------//TEAC
#ifdef TEAC_PORTABLE_DVD
	gbGPIO_TrayIsMid = GPIO_SW_A;
	gbGPIO_TrayIsIn	 = GPIO_LDCMPLT;
	gbGPIO_TrayIsOut = GPIO_EJCMPLT;
	gbGPIO_DiscIsIn  = GPIO_PRELOAD;
	gbGPIO_SledIsOut = GPIO_OUT_SW;	
#endif	
//---------------------------------------	

}

// SERVO_LIGHT hcchang
// 2005/04/03 yltseng, to eliminate warning message
UCHAR DecFunctionNull() {return 0;}

#ifdef SUPPORT_CD_TEXT
extern void CheckCDText_(void);
extern void InitCDText_(void);
extern void ReadCDText_(void);
void (* CheckCDText)() = CheckCDText_;
void (* InitCDText)() = InitCDText_;
void (* ReadCDText)() = ReadCDText_;
#else
void (* CheckCDText)() = (void *)DecFunctionNull;
void (* InitCDText)() = (void *)DecFunctionNull;
void (* ReadCDText)() = (void *)DecFunctionNull;
#endif

#if defined(SUPPORT_CDG) && !defined(SUPPORT_ECC)
extern UCHAR CDSubCodeProc_(void);
extern void CDSubCodeBackUp_(void);
extern void CDSubCodeECCInit_(void);
extern void CDSubCodeECCClear_(void);
UCHAR (* CDSubCodeProc)()       = CDSubCodeProc_;
void (* CDSubCodeBackUp)()      = CDSubCodeBackUp_;
void (* CDSubCodeECCInit)()     = CDSubCodeECCInit_;
void (* CDSubCodeECCClear)()    = CDSubCodeECCClear_;
#else
UCHAR (* CDSubCodeProc)()       = DecFunctionNull;
void (* CDSubCodeBackUp)()      = (void(*)())DecFunctionNull;
void (* CDSubCodeECCInit)()     = (void(*)())DecFunctionNull;
void (* CDSubCodeECCClear)()    = (void(*)())DecFunctionNull;
#endif

#ifdef SERVO_LIGHT
UCHAR (* DecOptionalFunc1)()    = DecFunctionNull;
void (* DecOptionalFunc2)()     = (void(*)())DecFunctionNull;
void (* DecOptionalFunc3)()     = (void(*)())DecFunctionNull;
void (* DecOptionalFunc4)()     = (void(*)())DecFunctionNull;
void (* DecOptionalFunc5)()     = (void(*)())DecFunctionNull;
void (* DecOptionalFunc6)()     = (void(*)())DecFunctionNull;

#else
extern UCHAR DecOptionalFunc1a();
extern void DecOptionalFunc2a();
extern void DecOptionalFunc3a();
extern void DecOptionalFunc4a();
extern void DecOptionalFunc5a();
extern void DecOptionalFunc6a();

UCHAR (* DecOptionalFunc1)()    = DecOptionalFunc1a;
void (* DecOptionalFunc2)()     = DecOptionalFunc2a;
void (* DecOptionalFunc3)()     = DecOptionalFunc3a;
void (* DecOptionalFunc4)()     = DecOptionalFunc4a;
void (* DecOptionalFunc5)()     = DecOptionalFunc5a;
void (* DecOptionalFunc6)()     = DecOptionalFunc6a;
#endif

//-----------------------------------------ending----------------------------------------------

⌨️ 快捷键说明

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