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

📄 servo.h

📁 ESS3890+SL原代码(1*16内存)
💻 H
字号:
/* SCCSID @(#)servo.h	4.18 11/29/04 *//* * $Log$ */#ifndef __SERVO_H__#define __SERVO_H__/* * Summary of Servo related flags (compile options as of 06/19/03). *				Philips- * Toshiba	Sony		CD7		Matsushita	Samsung       SILAN * (servot.c)	(servos.c)	(servop.c)	(servom.c)	(servok.c)  (servosl.c) * ----------	----------	----------	----------	---------- * TCSERVO	SERVO		SERVO		SERVO		SERVO       SERVO *		CXDSERVO	CD7II		MSERVO		SAM_SRV     SILAN_SERVO *		(see NOTE) * * (Associated files for specific servos) *		srvocore.c	cdctl.c * tcservo.c	dsas.c		cd7.c		dsas.c		dsak.c        dsasl.c * servot.c	servos.c	servop.c	servom.c	servok.c      servosl.c * playt.c	plays.c		play.c		plays.c		plays.c       plays.c * *  * NOTE: depending on specific version of Sony servo used, the following *	variables has to be customized in dsas.c: *	cxd_version		   (CXD3008, CXD3068 or CXD3059) *	use_shutter                (1 to enable use of shutter pickup) *	use_antiphase              (1 to antiphase LDON and AUTOAGC) *	use_dig_out		   (1 to enable digital mute/unmute) *  * (Please feel free to add suggestions on how to make maintenance of various *  servo code easier) * Comments:  *	PVu(8/31/01) - My suggestion for anyone modifying or adding additional  *		       servo support, is to try to keep consistent with *		       the naming conventions and structure of existing *		       servo code, i.e. Sony. That way the higher level  *		       API's in play?.c and dsa?.c can be shared without *		       too many changes. There should be no reason for *		       introducing different versions of play.c and dsa.c *		       for instance. For reasons of time and code stability, *		       I have not tried to unify these files at this time. *		       I only did the safest thing at this point, that is, to *		       update, document and summarize the current flags and  *		       associated servo files for currently supported servo  *		       targets. */#if (defined (SERVO) || defined (TCSERVO) || defined (SILAN_SERVO))#ifndef _COMMON_H_#include "common.h"#endif#ifdef MSERVO/* specific to Matsushita servo */#include "servom.h" #endif#ifdef SAM_SRV/* specific to Samsung servo */#include "servok.h" #endif#ifdef CD7II/* specific to philips servo */#include "servop.h" #endif#ifdef ESS3721#include "servoe.h"#endif#ifdef CXDSERVO#include "cxd.h"#endif/************************************************************************ * Defines for SERVO.							* ************************************************************************/#define job_sledin 	0x00#define job_focus  	0x01#define job_clvon  	0x02#define job_stop   	0x03/* * Q code information */#define SUBQ_LEN	10#define SERVO_QCTRADD	0#define SERVO_QTRACK	1#define SERVO_QPOINT	2#define SERVO_QRMIN	3#define SERVO_QRSEC	4#define SERVO_QRFRAME	5#define SERVO_QZERO	6#define SERVO_QPMIN	7#define SERVO_QPSEC	8#define SERVO_QPFRAME	9/* * SERVO mode information */#ifndef CD7II#define SERVO_IDLE              0#endif#define SERVO_STOP		1#define SERVO_OPEN		2#define SERVO_CLOSE		3#define SERVO_PLAY		4#define SERVO_PAUSE		5#define SERVO_RELEASEPAUSE	6#define SERVO_RECOVER		7#define SERVO_SEARCH		8#define SERVO_TOC		9#ifdef SERVO#define FASTER		1#define OPEN_M		0x00#define STOP_M		0x01#define CUE_M		0x02#define PLAY_M 		0x03#define OPEN_00		0x00#define OPEN_10		1#define UNLD_10		2#define LOAD_10		3#define SLED_10		4#define FB_STP		0x20#define FB_R_LIMIT	0x60#define FB_L_LIMIT	(-0x60)#define FB_ABT		03#define F_OFF		0x00#define FCSDWN		0x02/* for SERVO_tracking_control() */#define TRK_CNTL	0x10#define AS_ON		0x08#define BRK_ON		0x04#define TG_UP		0x02    /* 0x3, set TGF_SEL1 for SERVO_trk_cntl */#define TGF_SEL1	0x01	/* TG_UP Filter Select 1 */#define TOFF_SOFF	0x20#define TOFF_SFWD	0x22#define TOFF_SREV	0x23#define TON_SOFF	0x24#define TON_SON		0x25#define A_CANCEL	0x4000#define AGC_CANCEL	x38148e#define A_FOCUS		0x4700#define A_1TJF		0x48#define A_1TJR		0x49#define A_10TJF		0x4A#define A_10TJR		0x4B#define A_2NTJF		0x4C#define A_2NTJR		0x4D#define A_NTMF		0x4E#define A_NTMR		0x4F#define SET_B1		0x59#define B_1TJF		0x53#define B_1TJR		0x53#define B_10TJF		0x58#define B_10TJR		0x58#define B_30TJF		0x5B#define B_30TJR		0x5B#define B_100TJF	0x5B#define B_100TJR	0x5B#define B_NTMF		0x5B#define B_NTMR		0x5B#define D_30TJF		0x62#define D_30TJR		0x62#define D_100TJF	0x62#define D_100TJR	0x62#define CLV_STOP	0xE0#define CLV_KICK	0xE8#define CLV_BRK		0xEA#define CLV_A		0xE6#define T2WMAX		0x01#ifdef SAM_SRV#define TIMER1_INTERVAL	2	/* In msec */#else#define TIMER1_INTERVAL	10	/* In msec */#endif#define T10SECOND	(10000/TIMER1_INTERVAL)#define T5SECOND	(5000/TIMER1_INTERVAL)#define T4SECOND	(4000/TIMER1_INTERVAL)#define T3SECOND	(3000/TIMER1_INTERVAL)#define T2SECOND	(2000/TIMER1_INTERVAL)#define T1_5SECOND	(1500/TIMER1_INTERVAL)#define T1SECOND	(1000/TIMER1_INTERVAL)#define T800MS		(800/TIMER1_INTERVAL)#define T600MS		(600/TIMER1_INTERVAL)#define T500MS		(500/TIMER1_INTERVAL)#define T400MS		(400/TIMER1_INTERVAL)#define T300MS		(300/TIMER1_INTERVAL)#define T250MS		(250/TIMER1_INTERVAL)#define T200MS		(200/TIMER1_INTERVAL)#define T150MS		(150/TIMER1_INTERVAL)#define T100MS		(100/TIMER1_INTERVAL)#define T80MS		(80/TIMER1_INTERVAL)#define T50MS		(50/TIMER1_INTERVAL)#define T30MS		(30/TIMER1_INTERVAL)#define T20MS		(20/TIMER1_INTERVAL)#define T10MS		(10/TIMER1_INTERVAL)#define T2MS		(2/TIMER1_INTERVAL) /* TIMER1_INTERVAL == 2*/#define FOK_TIMEOUT	T250MS #define GFSMUTE_TIMEOUT T30MS#define GFS_TIMEOUT	T4SECOND#define SUBQ_TIMEOUT	T4SECOND#define SUBQ_MP3TIMEOUT	T10SECOND#endif /* SERVO */#ifdef TCSERVO#define SET_rough_search 	servo_flags |= 0x0001#define CLR_rough_search 	servo_flags &= ~0x0001#define rough_search_TRUE 	(servo_flags & 0x0001)#define rough_search_FALSE 	!(servo_flags & 0x0001)#define SET_search_flag 	servo_flags |= 0x0002#define CLR_search_flag 	servo_flags &= ~0x0002#define search_flag_TRUE 	(servo_flags & 0x0002)#define search_flag_FALSE 	!(servo_flags & 0x0002)#define SET_servo_abort 	servo_flags |= 0x0004#define CLR_servo_abort 	servo_flags &= ~0x0004#define servo_abort_TRUE 	(servo_flags & 0x0004)#define servo_abort_FALSE 	!(servo_flags & 0x0004)#define SET_servo_adj 		servo_flags |= 0x0008#define CLR_servo_adj 		servo_flags &= ~0x0008#define servo_adj_TRUE 		(servo_flags & 0x0008)#define servo_adj_FALSE		!(servo_flags & 0x0008)#define SET_close_mode 		mode_flags |= 0x0001#define CLR_close_mode 		mode_flags &= ~0x0001#define TOG_close_mode 		mode_flags ^= 0x0001#define close_mode_TRUE 	(mode_flags & 0x0001)#define close_mode_FALSE 	!(mode_flags & 0x0001)#define SET_access_mode 	mode_flags |= 0x0002#define CLR_access_mode 	mode_flags &= ~0x0002#define access_mode_TRUE 	(mode_flags & 0x0002)#define access_mode_FALSE 	!(mode_flags & 0x0002)#define SET_pause_mode 		mode_flags |= 0x0004#define CLR_pause_mode 		mode_flags &= ~0x0004#define pause_mode_TRUE	 	(mode_flags & 0x0004)#define pause_mode_FALSE 	!(mode_flags & 0x0004)#define SET_tray_blocked 	mode_flags |= 0x0008#define CLR_tray_blocked 	mode_flags &= ~0x0008#define tray_blocked_TRUE 	(mode_flags & 0x0008)#define tray_blocked_FALSE 	!(mode_flags & 0x0008)#define SET_in_initCD 		mode_flags |= 0x0010#define CLR_in_initCD 		mode_flags &= ~0x0010#define in_initCD_TRUE 		(mode_flags & 0x0010)#define in_initCD_FALSE 	!(mode_flags & 0x0010)/* Constants of Tray Process */#define TRAY_MOVE_TIME_LIMIT	0x200/* State of Tray Process */#define TRAY_START_OPEN		0#define TRAY_MONITOR_OPEN	1#define TRAY_START_CLOSE	2#define TRAY_MONITOR_CLOSE	3#define TRAY_FULL_OPEN		4#define TRAY_IDLE_CLOSE		5#define TRAY_IDLE		6/* Return value of Tray Process */#define TRAY_RET_wait		0#define TRAY_RET_closed		1#define TRAY_RET_opened		2#define TRAY_RET_blocked	3#define TRAY_RET_push		4/* Servo Mode */#define Mode_Focusing		0#define Mode_Tracking		1#define Mode_Monitor		2#define Mode_Stopping		3/* Return value of Servo Process */#define SERVO_RET_wait		0#define SERVO_RET_fok		1#define SERVO_RET_fng		2#define SERVO_RET_clvok		3#define SERVO_RET_clvng		4#define SERVO_RET_stopok	5#define SERVO_RET_loss		6#define SERVO_RET_Qcode		7#define SERVO_RET_int		8/* Focusing State */#define Focus_Para			0#define Focus_PickUpOut		1#define Focus_PickUpIn		2#define Focus_LDon		3#define Focus_LenDown		4#define Focus_DnDelay		5#define Focus_AccDisc		6#define Focus_Init		7#define Focus_Wait_Init		8#define Focus_Init_2		9#define Focus_Init_3		10#define Focus_Init_4		11#define Focus_Init_5		12#define Focus_Init_6		13#define Focus_Wait_FOK		14#define Focus_Wait_FOK_2	15#define Focus_recover		16/* Tracking State */#define CLV_Kick		0#define CLV_KickWait		1#define CLV_Kick_2		2#define CLV_Kick_3		3#define CLV_Kick_31		4#define CLV_Kick_32		5#define CLV_Kick_33		6#define CLV_Kick_4		7/* Monitor State */#define MON_slide		0#define MON_jump		1/* Stopping State */#define STOP_start		0#define STOP_brake_wait		1#define STOP_off		2#define STOP_idle		3/* * Q code information */#define SUBQ_LEN		10#define SERVO_QCTRADD		0#define SERVO_QTRACK		1#define SERVO_QPOINT		2#define SERVO_QRMIN		3#define SERVO_QRSEC		4#define SERVO_QRFRAME		5#define SERVO_QZERO		6#define SERVO_QPMIN		7#define SERVO_QPSEC		8#define SERVO_QPFRAME		9/* Track jump */#define J_FORWARD		1#define J_BACKWARD		0#endif TCSERVO/*===========================================================*//**************************************** * Global variables			* ****************************************/#if (defined SAM_SRV || defined MSERVO )#if (defined CDG || defined CD_TEXT)GBLDEF(int SUBCODE_S0S1_OFFSET, 1);#endif#else#if (defined CDG || defined CD_TEXT)GBLDEF(int SUBCODE_S0S1_OFFSET, 0);#endif /* SAM_SRV || MSERVO */GBLDEF0(char	servo_fb_ok);GBLDEF0(char	servo_EF_balance_ok);GBLDEF0(char	servo_AGF_ok);GBLDEF0(char	servo_AGT_ok);GBLDEF0(ushort	servo_ef_mem);GBLDEF0(ushort	servo_fg_mem);GBLDEF0(ushort	servo_tg_mem);GBLDEF0(uint  	servo_per_ave);#endif /* SAM_SRV */GBLDEF0(char	servo_focus_drop);GBLDEF0(char	servo_gfs_drop);GBLDEF0(uchar	servo_pres_m);GBLDEF0(volatile short	servo_sys_timer);GBLDEF(int     servo_is_play, 1);/* Absolute CD time..common to Sony, Philips CD7 & Matsushita servos, * i.e. servos.c, servop.c, servom.c. */GBLDEF0(uint	SERVO_cdtime);	/* Pin saving option for Sony, Matsushita, Toshiba servos.. * refer to dsas.c, tcservo.c for details. */#define SHARE_OPEN	1#define SHARE_CLOSE	2EXPORT	char	share_open_close;EXPORT	int	SERVO_search_timeout;/**************************************** * Global Functions			* ****************************************/#ifdef CD7IIEXPORT	int	SERVO_open(void);EXPORT	int	SERVO_close(void);EXPORT	int	SERVO_stop(int);EXPORT	void	SERVO_start_up(void);EXPORT	void	SERVO_host_init(void);EXPORT	void	SERVO_DSP_init(void);EXPORT	int	SERVO_set_speed(int speed);EXPORT	int	SERVO_search(void);EXPORT	int	SERVO_search_request(void);EXPORT	void	check_user_input(void);EXPORT	void	servo_jump (short JumpSize);EXPORT	void	RISC_start_timer1(void);#elseEXPORT  void    SERVO_init(void);EXPORT  void    SERVO_interrupt_service(void);#endifEXPORT  void    SERVO_service(int);EXPORT	int	SERVO_set_speed(int);#if (defined (CXDSERVO) || defined (MSERVO))EXPORT  void	SERVO_send_8X_command(unsigned int, unsigned int);EXPORT	void	SERVO_tracking_control(unsigned char, unsigned char);EXPORT	void	SERVO_fbias(void);EXPORT  void    SERVO_fbias_10(void);EXPORT  void    SERVO_fbias_20(void);EXPORT  void    SERVO_fbias_30(void);EXPORT  void    SERVO_fbias_40(void);EXPORT	void	SERVO_EF_balance(void);EXPORT	void	SERVO_efv_10(void);EXPORT	void	SERVO_agc(void);EXPORT	void	SERVO_agc_10(void);EXPORT	void	SERVO_agc_20(void);EXPORT	void	SERVO_ag_trk(void);EXPORT	void	SERVO_fb_dtr(void);EXPORT	void	SERVO_rfjsmp(void);EXPORT	void	SERVO_emrchk(void);EXPORT	void	SERVO_fcson(void);#ifdef MSERVOEXPORT	ushort	SERVO_read_data(int avrg);#elseEXPORT	ushort	SERVO_read_data(unsigned char, int);#endif EXPORT	void	SERVO_send_command_no_latch(int, unsigned int);#endif	/* CXDSERVO || MSERVO */#ifdef CXDSERVOEXPORT	void	SERVO_focus_10(void);EXPORT  void	SERVO_focus_20(void);EXPORT  void    SERVO_focus_40(void);EXPORT  void    SERVO_focus_40_1(void);#endif#if (defined(CXDSERVO) || defined(MSERVO) || defined(SAM_SRV) || \     defined(ESS3721))EXPORT	void	SERVO_sledin(void);EXPORT	void	SERVO_focus(void);EXPORT	void	SERVO_schedule(void);EXPORT	int	SERVO_search(void);#ifdef MULTI_SESSIONEXPORT	int	SERVO_go_next_session(void);#endifEXPORT  PFV	servo_task;#endif	/* CXDSERVO || MSERVO || SAM_SRV */#endif /* SERVO || TCSERVO */#endif /* __SERVO_H__ */

⌨️ 快捷键说明

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