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

📄 mn662790.h

📁 代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -