📄 sony_servo.h
字号:
/* * 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#define SERVO_TRAY 9typedef struct _cd_info { unsigned char type; int firsttrack; /* first track # */ int lasttrack; /* last track # */ unsigned int leadout; /* lead out time */} CDINFO;/* CD type */#define CD_UNKNOWN 0 /* Has to be 0 */#define CD_CDDA 1#define CD_CDI 2#define CD_VCD 3#define CD_NODISC 4int gfs_check_high(void);int gfs_check_low(void);int servo_check_low(unsigned int pin_num);int servo_check_low2(unsigned int pin_num);int servo_check_high(unsigned int pin_num);int servo_check_high2(unsigned int pin_num);void servo_set_port(unsigned int pin_num);void servo_set_port2(unsigned int pin_num);void servo_clear_port(unsigned int pin_num);void servo_clear_port2(unsigned int pin_num);extern volatile int delay_count;#define SUBQ_READY (regs16->Genio_Pos_Edg&(1<<1))#define RESET_SUBQ regs16->Genio_Pos_Edg = 0xff/* MACROS TO CHECK IF PIN VALUES = '1' */#define SERVO_SENS_HIGH servo_check_high(1<<15)#define SERVO_GFS_HIGH (regs16->Genio_In2 & (1<<1))#define SERVO_FOK_HIGH (regs16->Genio_In2 & (1<<0))#define SERVO_OPEN_HIGH servo_check_high(1<<0)#define SERVO_CLOSE_HIGH servo_check_high(1<<0)#define SERVO_SQSO_HIGH (regs16->Genio_In & (1<<9))/* MACROS TO CHECK IF PIN VALUES = '0' */#define SERVO_SENS_LOW servo_check_low(1<<15)#define SERVO_GFS_LOW servo_check_low2(1<<1)#define SERVO_FOK_LOW servo_check_low2(1<<0)#define SERVO_OPEN_LOW servo_check_low(1<<0)#define SERVO_CLOSE_LOW servo_check_low(1<<0)#define SERVO_SQSO_LOW servo_check_low(1<<9)#ifdef USE_SONY_3068/* MACROS TO SET PIN TO '1' */#define SET_SERVO_XRST servo_clear_port(1<<11)#define SET_SERVO_XLAT servo_clear_port(1<<12)#define SET_SERVO_LDON servo_clear_port(1<<8)#define SET_SERVO_AGC servo_clear_port(1<<7)#define SET_SERVO_DATA servo_clear_port(1<<13)#define SET_SERVO_FWD servo_clear_port(1<<3)#define SET_SERVO_REV servo_clear_port(1<<2)#define SET_SERVO_CLOCK servo_clear_port(1<<14)#define SET_SERVO_SQCK servo_clear_port(1<<10)/* MACROS TO SET PIN TO '0' */#define CLEAR_SERVO_XRST servo_set_port(1<<11)#define CLEAR_SERVO_XLAT servo_set_port(1<<12)#define CLEAR_SERVO_LDON servo_set_port(1<<8)#define CLEAR_SERVO_AGC servo_set_port(1<<7)#define CLEAR_SERVO_DATA servo_set_port(1<<13)#define CLEAR_SERVO_FWD servo_set_port(1<<3)#define CLEAR_SERVO_REV servo_set_port(1<<2)#define CLEAR_SERVO_CLOCK servo_set_port(1<<14) #define CLEAR_SERVO_SQCK servo_set_port(1<<10)#else#define SET_SERVO_XRST (regs16->Genio_Out |= (1<<11))#define SET_SERVO_XLAT servo_set_port(1<<12)#define SET_SERVO_LDON servo_set_port(1<<8)#define SET_SERVO_AGC servo_set_port(1<<7)#define SET_SERVO_DATA servo_set_port(1<<13)#define SET_SERVO_FWD servo_set_port(1<<3)#define SET_SERVO_REV servo_set_port(1<<2)#define SET_SERVO_CLOCK servo_set_port(1<<14)#define SET_SERVO_SQCK servo_set_port(1<<10)/* MACROS TO SET PIN TO '0' */#define CLEAR_SERVO_XRST (regs16->Genio_Out &= ~(1<<11))#define CLEAR_SERVO_XLAT servo_clear_port(1<<12)#define CLEAR_SERVO_LDON servo_clear_port(1<<8)#define CLEAR_SERVO_AGC servo_clear_port(1<<7)#define CLEAR_SERVO_DATA servo_clear_port(1<<13)#define CLEAR_SERVO_FWD servo_clear_port(1<<3)#define CLEAR_SERVO_REV servo_clear_port(1<<2)#define CLEAR_SERVO_CLOCK servo_clear_port(1<<14)#define CLEAR_SERVO_SQCK servo_clear_port(1<<10)#endif/************************************************************************ * Public routines * ************************************************************************/extern volatile char kickfg;extern unsigned char SERVO_Qarray_current[]; /* Q subcode array */extern int stop_flag; //chuextern volatile short servo_sys_timer;extern volatile char SERVO_mode;extern volatile int target_min, target_sec, target_frame;extern bit cd_ab_flag; /* Wenxin -- indicate CD in AB mode */extern int SERVO_close(void);extern void SERVO_sledin(void);extern void SERVO2545_init(void);extern void SERVO_schedule(void);extern void SERVO_mode_handle();extern void SERVO_send_8X_command(unsigned char soct, int mode);extern void SERVO_send_command(int num, unsigned int data);extern void SERVO_service(void);extern int SERVO_Seek(int min, int sec, int frame);extern void SERVO_delay_n_ms(int n_ms);extern void SERVO_focus();extern void mp3_servo_service();extern void (*servo_task)();extern unsigned int adjCDtime(); extern void Undo_mute();///******* sony_dsa.c **********/extern volatile char pause_min,pause_sec,pause_frame; extern int seek_min,seek_sec,seek_frm;extern bit jump_flag;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -