📄 mn662790.h
字号:
#define SERVO_GFS_STATUS_OK (servo.status&(1<<2))
#define SERVO_TOC_STATUS_OK (servo.status&(1<<3))
#define SERVO_CLOSE_OK (servo.status&(1<<4))
#define SERVO_OPEN_OK (servo.status&(1<<5))
#define SERVO_PAUSE_OK (servo.status&(1<<6))
#define SERVO_STOPED_OK (servo.status&(1<<7))
#define SERVO_RESET_SET (servo.status|=(1<<0))
#define SERVO_FOK_SET (servo.status|=(1<<1))
#define SERVO_GFS_SET (servo.status|=(1<<2))
#define SERVO_TOC_SET (servo.status|=(1<<3))
#define SERVO_CLOSE_SET (servo.status|=(1<<4))
#define SERVO_OPEN_SET (servo.status|=(1<<5))
#define SERVO_PAUSE_SET (servo.status|=(1<<6))
#define SERVO_STOPED_SET (servo.status|=(1<<7))
#define SERVO_RESET_CLEAR (servo.status&=(~(1<<0)))
#define SERVO_FOK_CLEAR (servo.status&=(~(1<<1)))
#define SERVO_GFS_CLEAR (servo.status&=(~(1<<2)))
#define SERVO_TOC_CLEAR (servo.status&=(~(1<<3)))
#define SERVO_CLOSE_CLEAR (servo.status&=(~(1<<4)))
#define SERVO_OPEN_CLEAR (servo.status&=(~(1<<5)))
#define SERVO_PAUSE_CLEAR (servo.status&=(~(1<<6)))
#define SERVO_STOPED_CLEAR (servo.status&=(~(1<<7)))
#define SERVO_CLVS_SET (servo.flag|=(1<<7)) //FZH 2002.08.08
#define SERVO_CDRW_SET (servo.flag|=(1<<6))
#define SERVO_DVCD_SET (servo.flag|=(1<<5))
#define SERVO_KICK_OUT (servo.flag|=(1<<4))
#define SERVO_EDATA_SET (servo.flag|=(1<<3))
//#define SPEED_CHANGING (servo.flag|=(1<<2))
#define SERVO_CLVS_CLEAR (servo.flag&=(~(1<<7)))
#define SERVO_CDRW_CLEAR (servo.flag&=(~(1<<6)))
#define SERVO_DVCD_CLEAR (servo.flag&=(~(1<<5)))
#define SERVO_KICK_IN (servo.flag&=(~(1<<4)))
#define SERVO_EDATA_CLEAR (servo.flag&=(~(1<<3)))
//#define SPEED_CHANGE_END (servo.flag&=(~(1<<2)))
#define SERVO_CLVS_TEST (servo.flag&(1<<7))
#define SERVO_CDRW_TEST (servo.flag&(1<<6))
#define SERVO_DVCD_TEST (servo.flag&(1<<5))
#define SERVO_KICK_DIR (servo.flag&(1<<4))
#define SERVO_EDATA_TEST (servo.flag&(1<<3))
//#define IS_SPEED_CHANGING (servo.flag&(1<<2))
#define SERVO_CONFIG_INIT servo.config = 0;
#define GPIO_OPEN_CLOSE_SET (servo.config|=(1<<0))
#define SERVO_VIB_SET (servo.config|=(1<<1))
#define GCTL_CDRW_HIGH (servo.config|=(1<<2))
#define SPINDLE_DEFAULT_STOP (servo.config|=(1<<3))
#define SERVO_VIB_CLEAR (servo.config&=(~(1<<1)))
#define GPIO_OPEN_CLOSE_TEST (servo.config&(1<<0))
#define SERVO_VIB_TEST (servo.config&(1<<1))
#define GCTL_CDRW_TEST (servo.config&(1<<2))
#define SPINDLE_DEFAULT_TEST (servo.config&(1<<3))
#define SERVO_TIME_2MS 2
#define SERVO_TIME_4MS 4
#define SERVO_TIME_6MS 6
#define SERVO_TIME_8MS 8
#define SERVO_TIME_10MS 10
#define SERVO_TIME_20MS 20
#define SERVO_TIME_30MS 30
#define SERVO_TIME_40MS 40
#define SERVO_TIME_50MS 50
#define SERVO_TIME_60MS 60
#define SERVO_TIME_70MS 70
#define SERVO_TIME_80MS 80
#define SERVO_TIME_90MS 90
#define SERVO_TIME_100MS 100
#define SERVO_TIME_200MS 200
#define SERVO_TIME_300MS 300
#define SERVO_TIME_400MS 400
#define SERVO_TIME_500MS 500
#define SERVO_TIME_600MS 600
#define SERVO_TIME_700MS 700
#define SERVO_TIME_800MS 800
#define SERVO_TIME_900MS 900
#define SERVO_TIME_1S 1000
#define SERVO_TIME_2S 2000
#define SERVO_TIME_3S 3000
#define SERVO_TIME_4S 4000
#define SERVO_TIME_5S 5000
#define SERVO_TIME_6S 6000
#define SERVO_TIME_7S 7000
#define SERVO_TIME_8S 8000
#define SERVO_TIME_9S 9000
#define PP0 15624//51 //15624.50893
#define PP1 5668 //56.68261
#define PP2 498520646
//#define PP0 15624.50893
//#define PP1 56.68261
//#define PP2 75982.41826
//#define SERVO_PIO (regs0->gpio_sts)
//#define SERVO_CFG (regs0->gpio_cfg)
#define SERVO_RESET 20
#define SERVO_MCLK 15
#define SERVO_DDAT 17
#define SERVO_XLAT 16
#define SERVO_OPEN 18
#define SERVO_CLOSE 19
#define SERVO_CLOPSW 10
#define SERVO_OPSW 10
#define SERVO_CLSW 10
#define SERVO_SENSE 14
#define SERVO_STAT 12
#define SERVO_SSTOP 9
#define SERVO_SCOR 13
#define SERVO_SQDT 6
#define SERVO_SQCK 24
//#define SERVO_AMUTE 41
#define SERVO_RESET_INIT { GPIO_M_SET(SERVO_RESET,1);GPIO_E_SET(SERVO_RESET,1);GPIO_O_SET(SERVO_RESET,0);} //TECOBEST FZH 2003.01.03
#define SERVO_MCLK_INIT { GPIO_M_SET(SERVO_MCLK,1);GPIO_E_SET(SERVO_MCLK,1);GPIO_O_SET(SERVO_MCLK,1);}
#define SERVO_DDAT_INIT { GPIO_M_SET(SERVO_DDAT,1);GPIO_E_SET(SERVO_DDAT,1);GPIO_O_SET(SERVO_DDAT,1);}
#define SERVO_XLAT_INIT { GPIO_M_SET(SERVO_XLAT,1);GPIO_E_SET(SERVO_XLAT,1);GPIO_O_SET(SERVO_XLAT,1);}
#define SERVO_OPEN_INIT { GPIO_M_SET(SERVO_OPEN,1);GPIO_E_SET(SERVO_OPEN,1);GPIO_O_SET(SERVO_OPEN,0);}
#define SERVO_CLOSE_INIT { GPIO_M_SET(SERVO_CLOSE,1);GPIO_E_SET(SERVO_CLOSE,1);GPIO_O_SET(SERVO_CLOSE,0);}
#define SERVO_CLOPSW_INIT { GPIO_M_SET(SERVO_CLOPSW,1);GPIO_E_SET(SERVO_CLOPSW,0);}
#define SERVO_SENSE_INIT { GPIO_M_SET(SERVO_SENSE,1);GPIO_E_SET(SERVO_SENSE,0);}
#define SERVO_STAT_INIT { GPIO_M_SET(SERVO_STAT,1);GPIO_E_SET(SERVO_STAT,0);}
#define SERVO_SCOR_INIT { GPIO_M_SET(SERVO_SCOR,0);}
#define SERVO_SQCK_INIT { GPIO_M_SET(SERVO_SQCK,0);}
#define SERVO_SQSO_INIT { GPIO_SEL(4,0);GPIO_M_SET(SERVO_SQDT,0);}
//#define SERVO_AMUTE_INIT { GPIO_M_SET(SERVO_AMUTE,1);GPIO_E_SET(SERVO_AMUTE,1);GPIO_O_SET(SERVO_AMUTE,0);}
#define SERVO_SENSE_TEST (GPIO_I_GET(SERVO_SENSE))
#define SERVO_STAT_TEST (GPIO_I_GET(SERVO_STAT))
#define SERVO_SSTOP_TEST (GPIO_I_GET(SERVO_SSTOP))
#define SERVO_CLSW_TEST (GPIO_I_GET(SERVO_CLSW))
#define SERVO_OPSW_TEST (GPIO_I_GET(SERVO_OPSW))
#define SERVO_CLOPSW_TEST (GPIO_I_GET(SERVO_CLOPSW))
#define SERVO_XRES_LOW (GPIO_O_SET(SERVO_RESET,0))
#define SERVO_XRES_HIGH (GPIO_O_SET(SERVO_RESET,1))
#define SERVO_MCLK_LOW (GPIO_O_SET(SERVO_MCLK,0))
#define SERVO_MCLK_HIGH (GPIO_O_SET(SERVO_MCLK,1))
#define SERVO_DDAT_LOW (GPIO_O_SET(SERVO_DDAT,0))
#define SERVO_DDAT_HIGH (GPIO_O_SET(SERVO_DDAT,1))
#define SERVO_XLAT_LOW (GPIO_O_SET(SERVO_XLAT,0))
#define SERVO_XLAT_HIGH (GPIO_O_SET(SERVO_XLAT,1))
#define SERVO_QCODE_READY ((regs0->iop_data[5]&0x0c00)==0x0400)
#define SERVO_QCODE_CRCOK (regs0->iop_data[5]&0x1000)
#define SERVO_QCODE_CLR (regs0->iop_data[5]&=(~(0x0400)))
//#define SERVO_AMUTE_HIGH (GPIO_O_SET(SERVO_AMUTE,1))
//#define SERVO_AMUTE_LOW (GPIO_O_SET(SERVO_AMUTE,0))
#ifdef AN4801_VCD_5_8
#define SERVO_OPEN_LOW (Servo_send_data_latch(0xceee43,3))
#define SERVO_OPEN_HIGH (Servo_send_data_latch(0xceef43,3))
#define SERVO_CLOSE_LOW (Servo_send_data_latch(0xceec43,3))
#define SERVO_CLOSE_HIGH (Servo_send_data_latch(0xceed43,3))
#else
#define SERVO_OPEN_LOW (GPIO_O_SET(SERVO_OPEN,0))
#define SERVO_OPEN_HIGH (GPIO_O_SET(SERVO_OPEN,1))
#define SERVO_CLOSE_LOW (GPIO_O_SET(SERVO_CLOSE,0))
#define SERVO_CLOSE_HIGH (GPIO_O_SET(SERVO_CLOSE,1))
#endif
#define SERVO_QCODE_BUFFER ((BYTE *)(SDRAM_BASE_UNCACHED+regs0->iopya*1024+0x420))
typedef struct
{
BYTE mm; // minute
BYTE ss; // second
BYTE ff; // frame
}MSF;
typedef struct
{
UINT16 value[16]; // command,pa1,pa2,pa3
BYTE wptr; // fifo in
BYTE rptr; // fifo out
}SERVO_QUEUE;
typedef struct
{
BYTE value[16]; // command,pa1,pa2,pa3
BYTE sptr; // fifo in
}SERVO_STACK;
MSF t;
typedef struct
{
UINT16 operation_timer;
//UINT16 timeout_timer;
UINT16 gfs_lost_timer;
UINT16 pause_timer; // Dennis 11/1
UINT16 Qcode_timer; // Dennis 11/1
//BYTE temp;
//UINT32 temp1;
UINT32 jump_time; //FZH 02.12.23
UINT32 range; //FZH 02.12.23
BYTE counter;
BYTE state;
BYTE status;
BYTE flag; //FZH 02.09.05
BYTE config;
BYTE vibtest1; //FZH 03.03.27
BYTE tray_status; //FZH 03.03.27
// BYTE track_change_counter; //FZH 03.03.27
// UINT32 lba2; //FZH 03.03.27
UINT32 lba1; //FZH 03.03.27
BYTE command;
BYTE display;
BYTE operation;
BYTE absmin;
BYTE abssec;
BYTE absfrm;
BYTE late_min; // Dennis 10/30
BYTE late_sec;
BYTE late_frm;
BYTE pause_min; // Dennis 10/30
BYTE pause_sec;
BYTE pause_frm;
BYTE Qcode[10];
BYTE buf[3];
//int recover_fail_counter;
BYTE skip_track_counter;
//int fcs_timer;
//BYTE first_do_fcs;
UINT16 focusfail_counter; //linych 0210
//BYTE focusok_counter; //linych 0210
//BYTE leadout_time;//for Q-code protect
/*
BYTE CLV2X; // cmchang 2002-05-24
BYTE long_TOC_cmd; // cmchang 2002-05-24
BYTE long_TOC_cmd_2nd;//材
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -