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

📄 sa9226.h

📁 代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考
💻 H
📖 第 1 页 / 共 2 页
字号:
//=================================================================//
//                    Samsung KB9226 Servo code                    //
//                    Modify :linych 2001.05.30                    //
//                    Version:9226-S1.0A                           //
//                                                                 //
// change note:                                                    //
// V1.09 (0524)                                                    //
//  1. modify GPIO setting of sa9226.h and hwsetup.c               //
//=================================================================//
#if  SUPPORT_COMBO
	#ifndef SUPPORT_SOC
	#define MUTESERVO_HARDWARE
	#define NEW_HARDWARE
	#endif
#define FALSE						0
#define TRUE						1
#define SUCCESS						2
#define FAIL						1
#define IDLE						0

#define SAM_BOARD

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

#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_17				0x11
#define SERVO_FOCUS_18				0x12
#define SERVO_FOCUS_19				0x13
#define SERVO_FOCUS_20				0x14
#define SERVO_FOCUS_21				0x15
#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_6_1			0x07
#define SERVO_RECOVER_7				0x08
#define SERVO_RECOVER_8				0x09
#define SERVO_RECOVER_9				0x0a
#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_8				0x08
#define SERVO_GOTIME_OK				0x09
#define SERVO_GOTIME_1_1			0x0a
#define SERVO_GOTIME_1_2			0x0b
#define SERVO_GOTIME_1_3			0x0c

#define GOTO_SELECT_1				0x00
#define GOTO_SELECT_16				0x01
#define GOTO_SELECT_32				0x02
#define GOTO_SELECT_64				0x03
#define GOTO_SELECT_128				0x04
#define GOTO_SELECT_HX				0x05
#define GOTO_SELECT_10				0x06
#define GOTO_SELECT_2N				0x07
#define	GOTO_SELECT_100				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
#define SERVO_SPEED_CMD				0x0c
#define SERVO_SESSION_CMD			0x0d
#define SERVO_VERSION_CMD			0xff

#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_OPED	0x0e00	//2003-9-16 kobe add 
#define SERVO_RESPONSE_TRAY_CLED	0x0f00	//2003-9-16 kobe add
#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_SPD_CHG_OK			0xa000

#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 SESSION_B0_FOUND			(servo.status_1&(1<<0))
#define LAST_SESSION_FOUND			(servo.status_1&(1<<1))
#define MULTI_SESSION_DISC			(servo.status_1&(1<<2))
#define DISC_EXIST					(servo.status_1&(1<<3))
#define B0_CHECKED					(servo.status_1&(1<<4))
#define GOTO_INNER_DIRECT			(servo.status_1&(1<<5))
#define PLAY_SPEED_2X				(servo.status_1&(1<<6))
#define PUH_KICK					(servo.status_1&(1<<7))

#define SESSION_B0_FOUND_SET		(servo.status_1|=(1<<0))
#define LAST_SESSION_FOUND_SET		(servo.status_1|=(1<<1))
#define MULTI_SESSION_DISC_SET		(servo.status_1|=(1<<2))
#define DISC_EXIST_SET				(servo.status_1|=(1<<3))
#define B0_CHECKED_SET				(servo.status_1|=(1<<4))
#define GOTO_INNER_DIRECT_SET		(servo.status_1|=(1<<5))
#define PLAY_SPEED_2X_SET			(servo.status_1|=(1<<6))
#define PUH_KICK_SET				(servo.status_1|=(1<<7))

#define SESSION_B0_FOUND_CLR		(servo.status_1&=(~(1<<0)))
#define LAST_SESSION_FOUND_CLR		(servo.status_1&=(~(1<<1)))
#define MULTI_SESSION_DISC_CLR		(servo.status_1&=(~(1<<2)))
#define DISC_EXIST_CLR				(servo.status_1&=(~(1<<3)))
#define B0_CHECKED_CLR				(servo.status_1&=(~(1<<4)))
#define GOTO_INNER_DIRECT_CLR		(servo.status_1&=(~(1<<5)))
#define PLAY_SPEED_2X_CLR			(servo.status_1&=(~(1<<6)))
#define PUH_KICK_CLR				(servo.status_1&=(~(1<<7)))

//=========================================for close shutter time start  ===========
#define CLOSE_SHUTTER_TIME			320     // 260 ms
//=========================================for close shutter time end  ===========

#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

⌨️ 快捷键说明

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