?? servo.h
字號:
/* SCCSID @(#)servo.h 1.17 11/30/98 *//* * $Log$ */#ifndef __SERVO_H__#define __SERVO_H__#if (SERVO || TCSERVO)#ifndef _COMMON_H_#include "common.h"#endif#ifndef _CONFIG_H_#include "config.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 */#define SERVO_IDLE 0#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#ifdef SERVO2545#define FASTER 1#define OPEN_M 0x00#define STOP_M 0x01#define CUE_M 0x02(FF/REV)#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 STOP_10 5#define STOP_20 6#define STOP_30 7#define STOP_40 8#define STOP_100 9#define STOP_110 10 #define STOP_120 11 #define STOP_200 12 #define STOP_210 13 #define STOP_220 14 #define STOP_230 15 #define FOCUS_10 16 #define FOCUS_20 17#define FOCUS_30 18#define FOCUS_40 19#define FOCUS_50 20#define FOCUS_60 21#define EFV_10 22#define FBIAS_10 23 #define FBIAS_20 24#define AGC_10 25#define AGC_20 26 #define TOC_10 27#define ACES_10 28 #define ACES_20 29#define ACES_30 30#define ACES_40 31#define CUE_10 32#define CUE_20 33 #define CUE_30 34#define CUE_40 35#define PLAY_10 36#define RUN_10 37#define EMR_10 38#define EMR_20 39#define FB_SPL 60#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#define AS_OFF 0x11#define TG_NOR 0x19#define TG_UP 0x17#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#define TIMER1_INTERVAL 10 /* 10ms */#define T4SECOND (4000/TIMER1_INTERVAL)#define T3SECOND (3000/TIMER1_INTERVAL)#define T2SECOND (2000/TIMER1_INTERVAL)#define T1SECOND (1000/TIMER1_INTERVAL)#define T500MS (500/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 T30MS (30/TIMER1_INTERVAL)#define FOK_TIMEOUT T80MS#define GFSMUTE_TIMEOUT T30MS#define GFS_TIMEOUT T4SECOND#define SUBQ_TIMEOUT T4SECOND#define SERVO_TRK_SLD_OFF SERVO_send_command(2, TOFF_SOFF)#define SERVO_TRK_SLD_ON SERVO_send_command(2, TON_SON)#define SERVO_FOCUS_OFF SERVO_send_command(2, F_OFF)#define SERVO_FOCUS_DOWN SERVO_send_command(2, FCSDWN)#define SERVO_AGC_CANCEL SERVO_send_command(6, AGC_CANCEL)#define SERVO_AUTOSEQ_CANCEL { SERVO_send_command(4, A_CANCEL); \ risc_sleep_a_bit(CYCLES_IN_ONE_MS/10); }#define SERVO_ANTISHOCK_OFF SERVO_send_command(2, AS_OFF)#define SERVO_AUTO_FOCUS SERVO_send_command(4, A_FOCUS)#define SERVO_CLV_KICK { SERVO_send_command(6, xe80000); }#define SERVO_CLV_STOP { SERVO_send_command(6, xe00000); }#define SERVO_CLV_BRK { SERVO_send_command(6, xea0000); }#define SERVO_CLV_A { SERVO_send_command(6, xe60000); kickfg = 1; }#endif#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 0x100/* 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#ifdef DAYTONA#define TRISTATE_CLOSE_SW TRISTATE_EAUX10#define CLOSE_SW_HIGH EAUX10_HIGH#define CLOSE_SW_LOW EAUX10_LOW#define TRISTATE_OPEN_SW TRISTATE_EAUX9#define OPEN_SW_HIGH EAUX9_HIGH#define OPEN_SW_LOW EAUX9_LOW#define SET_MOTOR_REV SET_EAUX13#define CLEAR_MOTOR_REV CLEAR_EAUX13#define SET_MOTOR_FWD SET_EAUX7#define CLEAR_MOTOR_FWD CLEAR_EAUX7#else /* DAYTONA */#define TRISTATE_CLOSE_SW TRISTATE_EAUX1#define CLOSE_SW_HIGH EAUX1_HIGH#define CLOSE_SW_LOW EAUX1_LOW#define TRISTATE_OPEN_SW TRISTATE_EAUX2#define OPEN_SW_HIGH EAUX2_HIGH#define OPEN_SW_LOW EAUX2_LOW#define SET_MOTOR_REV SET_EAUX7#define CLEAR_MOTOR_REV CLEAR_EAUX7#define SET_MOTOR_FWD SET_EAUX8#define CLEAR_MOTOR_FWD CLEAR_EAUX8#endif /* DAYTONA *//* Debug Pins */#define SET_DEBUG_PIN0 SET_AUX0#define CLEAR_DEBUG_PIN0 CLEAR_AUX0#define SET_DEBUG_PIN1 SET_AUX1#define CLEAR_DEBUG_PIN1 CLEAR_AUX1#define SET_DEBUG_PIN2 SET_AUX3#define CLEAR_DEBUG_PIN2 CLEAR_AUX3/* Function Pins */#ifdef DAYTONA#define TRISTATE_LIMIT_SW TRISTATE_EAUX14#define LIMIT_SW_HIGH EAUX14_HIGH#define LIMIT_SW_LOW EAUX14_LOW#define SET_RESET_TC SET_AUX0#define CLEAR_RESET_TC CLEAR_AUX0#define SET_BCK SET_EAUX8#define CLEAR_BCK CLEAR_EAUX8#define SET_CCE SET_EAUX4#define CLEAR_CCE CLEAR_EAUX4#define EAUX_R_ADDRESS dsc_aux0_datam#define NIBBLE_MASK 0x0f#define EAUX_LH 0#define NIBBLE_SHIFT 0#else /* DAYTONA */#define TRISTATE_LIMIT_SW TRISTATE_EAUX0#define LIMIT_SW_HIGH EAUX0_HIGH#define LIMIT_SW_LOW EAUX0_LOW#define SET_RESET_TC SET_EAUX9#define CLEAR_RESET_TC CLEAR_EAUX9#define SET_BCK SET_EAUX10#define CLEAR_BCK CLEAR_EAUX10#define SET_CCE SET_EAUX11#define CLEAR_CCE CLEAR_EAUX11#define EAUX_R_ADDRESS dsc_aux1_datam#define NIBBLE_MASK 0xf0#define EAUX_LH 1#define NIBBLE_SHIFT 4#endif /* DAYTONA */#endif TCSERVO/*===========================================================*//**************************************** * Global variables * ****************************************/GBLDEF0(char servo_fb_ok);GBLDEF0(char servo_EF_balance_ok);GBLDEF0(char servo_AGF_ok);GBLDEF0(char servo_AGT_ok);GBLDEF0(char servo_focus_drop);GBLDEF0(char servo_gfs_drop);GBLDEF0(uchar servo_pres_m);GBLDEF0(short servo_fbias);GBLDEF0(volatile short servo_sys_timer);GBLDEF0(ushort servo_ef_mem);GBLDEF0(ushort servo_fg_mem);GBLDEF0(ushort servo_tg_mem);GBLDEF0(uint servo_per_ave);/**************************************** * Global Functions * ****************************************/EXPORT void SERVO_init(void);EXPORT void SERVO_interrupt_service(void);EXPORT void SERVO_service(void);#ifdef SERVO2545EXPORT void SERVO_fbias(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);EXPORT ushort SERVO_read_data(unsigned char, int);EXPORT void SERVO_send_command_no_latch(int, unsigned int);EXPORT void SERVO_sledin(void);EXPORT void SERVO_focus(void);EXPORT void SERVO_schedule(void);EXPORT int SERVO_search(void);EXPORT PFV servo_task;#endif /* SERVO2545 */#endif SERVO#endif /* __SERVO_H__ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -