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

📄 sa9223.h

📁 代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考
💻 H
字号:
//=================================================================//
//                    Samsung KB9223 Servo code                    //
//                    Modify :linych 2001.05.30                    //
//                    Version:9223-S1.0A                           //
//                                                                 //
// change note:                                                    //
// V1.09 (0524)                                                    //
//  1. modify GPIO setting of sa9223.h and hwsetup.c               //
//=================================================================//
#define NEW_HARDWARE    //use GPIO 8
#if  SUPPORT_COMBO

#define          FALSE   0
#define          TRUE    1
#define          SUCCESS 2
#define          FAIL    1
#define          IDLE    0


#define          RETRY    0
#define          BALANCE  1
#define          TNO      2
#define          GAIN     3
#define          BRAKE    4 //linych 0302


#define          BCDToHEX(y)     (((y)>>4)&0x0f)*10+((y)&0x0f)
#define          HEXToBCD(y)     ((((y)/10)<<4)|((y)%10))

#define          SERVO_RESET_0             0x00
#define          SERVO_RESET_1             0x01
#define          SERVO_RESET_2             0x02
#define          SERVO_RESET_3             0x03
#define          SERVO_RESET_4             0x04
#define          SERVO_RESET_5             0x05
#define          SERVO_RESET_6             0x06
#define          SERVO_RESET_OK            0x10

#define          SERVO_TRAYIN_0            0x00
#define          SERVO_TRAYIN_1            0x01
#define          SERVO_TRAYIN_2            0x02
#define          SERVO_TRAYIN_3            0x03
#define          SERVO_TRAYIN_OK           0x10

#define          SERVO_TRAYOUT_0           0x00
#define          SERVO_TRAYOUT_1           0x01
#define          SERVO_TRAYOUT_2           0x02
#define          SERVO_TRAYOUT_3           0x03
#define          SERVO_TRAYOUT_OK          0x10

#define          TRAVEL_STOP               0x00
#define          TRAVEL_IN                 0x01
#define          TRAVEL_OUT                0x02

#define          SERVO_SLEDGE_S            0x00
#define          SERVO_SLEDGE_IN           0x01
#define          SERVO_SLEDGE_IN_1         0x02
#define          SERVO_SLEDGE_IN_2         0x03
#define          SERVO_SLEDGE_OUT          0x04
#define          SERVO_SLEDGE_OK           0x05

#define          SERVO_FOCUS_0             0x00
#define          SERVO_FOCUS_1             0x01
#define          SERVO_FOCUS_2             0x02
#define          SERVO_FOCUS_3             0x03
#define          SERVO_FOCUS_4             0x04
#define          SERVO_FOCUS_5             0x05
#define          SERVO_FOCUS_6             0x06
#define          SERVO_FOCUS_7             0x07
#define          SERVO_FOCUS_8             0x08
#define          SERVO_FOCUS_9             0x09
#define          SERVO_FOCUS_10             0x0a
#define          SERVO_FOCUS_11             0x0b
#define          SERVO_FOCUS_12             0x0c
#define          SERVO_FOCUS_13             0x0d
#define          SERVO_FOCUS_14             0x0e
#define          SERVO_FOCUS_15             0x0f
#define          SERVO_FOCUS_16             0x10
#define          SERVO_FOCUS_OK            0x20

#define          SERVO_FCS_0               0x00
#define          SERVO_FCS_1               0x01
#define          SERVO_FCS_2               0x02
#define          SERVO_FCS_3               0x03
#define          SERVO_FCS_4               0x04
#define          SERVO_FCS_5               0x05
#define          SERVO_FCS_6               0x06
#define          SERVO_FCS_7               0x07
#define          SERVO_FCS_8               0x08
#define          SERVO_FCS_9               0x09
#define          SERVO_FCS_10              0x0a
#define          SERVO_FCS_11              0x0b
#define          SERVO_FCS_12              0x0c
#define          SERVO_FCS_OK              0x10

#define          SERVO_RECOVER_0           0x00
#define          SERVO_RECOVER_1           0x01
#define          SERVO_RECOVER_2           0x02
#define          SERVO_RECOVER_3           0x03
#define          SERVO_RECOVER_4           0x04
#define          SERVO_RECOVER_5           0x05
#define          SERVO_RECOVER_6           0x06
#define          SERVO_RECOVER_7           0x07
#define          SERVO_RECOVER_8           0x08
#define          SERVO_RECOVER_9           0x09
#define          SERVO_RECOVER_OK          0x10

#define          SERVO_GOTIME_0            0x00
#define          SERVO_GOTIME_1            0x01
#define          SERVO_GOTIME_2            0x02
#define          SERVO_GOTIME_3            0x03
#define          SERVO_GOTIME_4            0x04
#define          SERVO_GOTIME_5            0x05
#define          SERVO_GOTIME_6            0x06
#define          SERVO_GOTIME_7            0x07
#define          SERVO_GOTIME_OK           0x08

#define          GOTO_SELECT_1             0x00
#define          GOTO_SELECT_16            0x02
#define          GOTO_SELECT_32            0x03
#define          GOTO_SELECT_64            0x04
#define          GOTO_SELECT_128           0x05
#define          GOTO_SELECT_256           0x06
#define          GOTO_SELECT_HX            0x07
#define          GOTO_SELECT_M             0x08

#define          SERVO_IDLE_STATE          0x00
#define          SERVO_RESET_STATE         0x01
#define          SERVO_SLEDGE_STATE        0x02
#define          SERVO_FOCUS_STATE         0x03
#define          SERVO_FCS_STATE           0x04
#define          SERVO_READTOC_STATE       0x05
#define          SERVO_GOTO_STATE          0x06
#define          SERVO_PLAY_STATE          0x07
#define          SERVO_PLAYING_STATE       0x08
#define          SERVO_STOP_STATE          0x09
#define          SERVO_OPEN_STATE          0x0a
#define          SERVO_CLOSE_STATE         0x0b
#define          SERVO_OPENED_STATE        0x0c
#define          SERVO_RECOVER_STATE       0x0d

#define          SERVO_IDLE_CMD            0x00
#define          SERVO_READTOC_CMD         0x01
#define          SERVO_PLAY_CMD            0x02
#define          SERVO_GOTO_CMD            0x03
#define          SERVO_PLAY_TRACK_CMD      0x04
#define          SERVO_STOP_CMD            0x05
#define          SERVO_AUTO_CMD            0x06
#define          SERVO_PAUSE_CMD           0x07
#define          SERVO_OPEN_CMD            0x08
#define          SERVO_CLOSE_CMD           0x09
#define          SERVO_SET_CMD             0x0a
#define          SERVO_SLEDGE_OFF_CMD      0x0b //Dennis 3/5
#define          SERVO_SPEED_CMD           0x0c
#define          SERVO_VERSION_CMD         0xff //linych 0222

#define          SERVO_PLAY_0              0x00
#define          SERVO_PLAY_1              0x01
#define          SERVO_PLAY_2              0x02
#define          SERVO_PLAY_OK             0x05

#define          SERVO_STOP_0              0x00
#define          SERVO_STOP_1              0x01
#define          SERVO_STOP_2              0x02
#define          SERVO_STOP_OK             0x03

#define          SERVO_GFS_OK              0x00
#define          SERVO_FOCUS_LOST          0x01
#define          SERVO_GFS_LOST            0x02

#define          SERVO_QCDOE_0             0x00
#define          SERVO_QCDOE_1             0x01
#define          SERVO_QCDOE_2             0x02
#define          SERVO_QCDOE_3             0x03
#define          SERVO_QCDOE_4             0x04

#define          SERVO_RESPONSE_FOUND      0x0100
#define          SERVO_RESPONSE_STOPPED    0x0200
#define          SERVO_RESPONSE_DISC_ST    0x0300
#define          SERVO_RESPONSE_ERROR      0x0400
#define          SERVO_RESPONSE_LOT_LSB    0x0900
#define          SERVO_RESPONSE_LOT_MSB    0x0a00
#define          SERVO_RESPONSE_TRAY_M     0x0b00
#define          SERVO_RESPONSE_TRAY_OP    0x0c00
#define          SERVO_RESPONSE_TRAY_CL    0x0d00
#define          SERVO_RESPONSE_TRAY_CLED  0x0f00
#define          SERVO_RESPONSE_ATT        0x1000
#define          SERVO_RESPONSE_ATI        0x1100
#define          SERVO_RESPONSE_ATM        0x1200
#define          SERVO_RESPONSE_ATS        0x1300
#define          SERVO_RESPONSE_ABS_MM     0x1400
#define          SERVO_RESPONSE_ABS_SS     0x1500
#define          SERVO_RESPONSE_ABS_FF     0x1600
#define          SERVO_RESPONSE_MODE       0x1700

#define          SERVO_GOTO_READY         ((servo.status & 0x97)==0x17)
#define          SERVO_RESET_STATUS_OK    (servo.status&(1<<0))
#define          SERVO_FOK_STATUS_OK      (servo.status&(1<<1))
#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_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          SERVO_RESET        20
#define          SERVO_LKFS         12
#define          SERVO_MCLK         15
#define          SERVO_DDAT         17
#define          SERVO_XLAT         16
#define          SERVO_ISTAT2       41  //8 Jerry 05/28
#define          SERVO_OPEN         18
#define          SERVO_CLOSE        19
#define          SERVO_CLOPSW       10
#define          SERVO_SENSE        14
#define          SERVO_SCOR         13
#define          SERVO_SQSO         6   //2002/7/24 09:50

⌨️ 快捷键说明

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