📄 sa9223.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 + -