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

📄 lib.h

📁 这是用Visual C++编写的步进电机驱动控制程序
💻 H
字号:
#ifndef TRUE
	#define	TRUE	1
#endif
#ifndef FALSE
	#define	FALSE	0
#endif

#define	HOST_INTERRUPT_BIT_MASK	 0x01
#define	INTERRUPT_BIT_SENSE	 0 /* a 0 here means an interrupt is active
				      when the bit is 0, a value equal to the
				      bit mask means it is active when the
				      bit is 1 */
#define	DOUBLE	double
#define	FLOAT	float
#define	ULONG	unsigned long int
#define	LONG	long int
#define	UWORD	unsigned short int
#define	WORD	short int
#define	BYTE	unsigned char
#define	CHAR	char
/* other type definitions */

typedef enum	{CHIPSET_SET, CHIPSET_REQUEST} command_type;
typedef enum	{CHECKSUM_BAD, CHECKSUM_GOOD} checksum_result;
typedef enum	{HIGH, LOW} long_encoding;
typedef enum	{NO_CHECKSUM_ERROR, CHECKSUM_ERROR} checksum_error;

long	set_1(void);
long	set_2(void);
long	set_3(void);
long	set_4(void);
long	set_i(void);
long    set_base_address(long);
long	set_prfl_s_crv(void);
long	set_prfl_trap(void);
long	set_prfl_vel(void);
long	set_prfl_gear(void);
long	set_pos(long);
long	set_vel(long);
long	set_acc(long);
long	set_max_acc(long);
long	set_jerk(long);
long	set_ratio(long);
long	synch_prfl(void);
long	zero_pos(void);
long	get_pos(void);
long	get_vel(void);
long	get_acc(void);
long	get_max_acc(void);
long	get_jerk(void);
long	get_ratio(void);
long	get_desired_pos(void);
long	get_desired_vel(void);
long	set_kp(long);
long	set_kd(long);
long	set_ki(long);
long	set_kvff(long);
long	set_i_lm(long);
long	set_pos_err(long);
long	get_kp(void);
long	get_kd(void);
long	get_ki(void);
long	get_kvff(void);
long	get_i_lm(void);
long	get_pos_err(void);
long	get_intgr(void);
long	get_actl_pos_err(void);
long	set_auto_stop_on(void);
long	set_auto_stop_off(void);
long	set_time_brk(void);
long	set_pos_brk(void);
long	set_neg_brk(void);
long	set_actl_pos_brk(void);
long	set_actl_neg_brk(void);
long	set_brk_off(void);
long	set_brk_pnt(long);
long	update(void);
long	multi_update(long);
long	set_auto_update_on(void);
long	set_auto_update_off(void);
long	get_brk_pnt(void);
long	set_intrpt_mask(void);
long	get_intrpt(void);
long	rst_intrpt(long);
long	get_intrpt_mask(void);
long	clr_status(void);
long	get_status(void);
long	get_mode(void);
long	set_capt_index(void);
long	set_capt_home(void);
long	get_capt(void);
long	set_output_pwm(void);
long	set_output_dac16(void);
long	mtr_on(void);
long	mtr_off(void);
long	set_mtr_cmd(long);
long	get_output_mode(void);
long	axis_on(void);
long	axis_off(void);
long	get_actl_pos(void);
long	set_lmt_sense(long);
long	get_lmt_swtch(void);
long	lmts_on(void);
long	lmts_off(void);
long	get_home(void);
long	set_smpl_time(long);
long	get_smpl_time(void);
long	reset(void);
long	get_time(void);
long	stop(void);
long	smooth_stop(void);

long 	get_io_input(void);
long 	set_io_output(long output_value);
long	get_mtr_cmd(void);
long	set_actl_pos(long the_value);

//long	set_fltr_pid(long);

checksum_error	send_chipset_cmd(short int, command_type, short int, WORD *, WORD *);
void 	write_a_cmd(BYTE, WORD *);
void	write_a_word(WORD, WORD *);
void	read_a_word(WORD *, WORD *);
checksum_result	read_n_check_checksum(WORD, WORD *);
void	write_cmd(BYTE);
void	write_byte(BYTE);
BYTE	read_byte(void);
void	wait_until_not_busy(void);
void	hardware_reset(void);

/* chipset commands */

#define	SET_1		 		1
#define	SET_2				2
#define	SET_3				3
#define	SET_4				4
#define	GET_HOME			5
#define	SET_MTR_LMT			6
#define	GET_MTR_LMT			7
#define	SET_I				8
#define	SET_PRFL_TRAP		9
#define	SET_PRFL_VEL		0xa
#define	SET_PRFL_S_CRV		0xb
#define	SET_PRFL_GEAR		0xc
#define	SET_MTR_BIAS		0xf
#define	SET_POS				0x10
#define	SET_VEL				0x11
#define	SET_ACC				0x12
#define	SET_JERK			0x13
#define	SET_RATIO			0x14
#define	SET_MAX_ACC			0x15
#define	SET_BRK_PNT			0x16
#define	SET_TIME_BRKPNT		0x17
#define	SET_POS_BRKPNT		0x18
#define	SET_NEG_BRKPNT		0x19
#define	UPDATE				0x1a
#define	SET_ACTL_POS_BRK	0x1b
#define	SET_ACTL_NEG_BRK	0x1c
#define	GET_TRGT_POS		0x1d
#define	GET_TRGT_VEL		0x1e
#define	SET_KP				0x25
#define	SET_KI				0x26
#define	SET_KD				0x27
#define	SET_I_LM			0x28
#define	SET_POS_ERR			0x29
#define	SET_KVFF			0x2b
#define	GET_MTR_BIAS		0x2d
#define	GET_INTGR			0x2e
#define	SET_INTRPT_MASK		0x2f
#define	GET_INTRPT			0x30
#define	GET_STATUS			0x31
#define	RST_INTRPT			0x32
#define	CLR_STATUS			0x33
#define	RST_STATUS			0x34
#define	SET_MTN_CMPLT_BRK	0x35
#define	GET_CAPT			0x36
#define	GET_ACTL_POS		0x37
#define	SET_SMPL_TIME		0x38
#define	RESET				0x39
#define	GET_MTR_CMD			0x3a
#define	SET_OUTPUT_DAC16	0x3b
#define	SET_OUTPUT_PWM		0x3c
#define	GET_TIME			0x3e
#define	ZERO_POS			0x3f
#define	AXIS_OFF			0x40
#define	AXIS_ON				0x41
#define	MTR_OFF				0x42
#define	MTR_ON				0x43
#define	SET_AUTO_STOP_OFF	0x44
#define	SET_AUTO_STOP_ON	0x45
#define	STOP				0x46
#define	SYNCH_PRFL			0x47
#define	GET_MODE			0x48
#define	GET_POS				0x4a
#define	GET_VEL				0x4b
#define	GET_ACC				0x4c
#define	SET_ACTL_POS		0x4d
#define	SMOOTH_STOP			0x4e
#define	GET_MAX_ACC			0x4f
#define	GET_KP				0x50
#define	GET_KI				0x51
#define	GET_KD				0x52
#define	GET_I_LM			0x53
#define	GET_KVFF			0x54
#define	GET_POS_ERR			0x55
#define	GET_INTRPT_MASK		0x56
#define	GET_BRK_PNT			0x57
#define	GET_JERK			0x58
#define	GET_RATIO			0x59
#define	MULTI_UPDATE		0x5b
#define	SET_AUTO_UPDATE_ON	0x5c
#define	SET_AUTO_UPDATE_OFF	0x5d
#define	SET_EXT_BRK			0x5e
#define	GET_ACTL_POS_ERR	0x60
#define	GET_SMPL_TIME		0x61
#define	SET_MTR_CMD			0x62
#define	SET_CAPT_INDEX		0x64
#define	SET_CAPT_HOME		0x65
#define	SET_LMT_SENSE		0x66
#define	GET_LMT_SWTCH		0x67
#define	SET_BRK_OFF			0x6d
#define	GET_OUTPUT_MODE		0x6e
#define	LMTS_ON				0x70
#define	LMTS_OFF			0x71

//#endif
//#define	GET_CNTS			0x6f
//#define	GET_VRSN			0x6c
//#define	SET_CNTS			0x68
//#define	GET_KV				0x5a
//#define	SET_OUTPUT_DAC12	0x3d
//#define	SET_KV				0x2a
//#define	SET_FLTR_PID		0x21
//#define	SET_FLTR_PIVFF		0x22
//#define	SET_HALL_SENSE		0x23
//#define	GET_HALL_SENSE		0x24
//#define	GET_STEP_RATIO			0x6f
//#define	SET_PHASE_TIME			0x72
//#define	SET_PHASE_BRUSH			0x73
//#define	SET_PHASE_STEPPER		0x74
//#define	SET_PHASE_CNTS			0x75
//#define	SET_PHASE_OFFSET		0x76
//#define	SET_BUF_MTR_CMD			0x77
//#define	SET_PHASE_HALL			0x78
//#define	SET_PHASE_ALGOR			0x79
//#define	INIT_PHASE			0x7a
//#define	GET_PHASE_OFFSET		0x7b
//#define	GET_PHASE_TIME			0x7c
//#define	GET_PHASE_CNTS			0x7d
//#define	GET_HALLS			0x7e
//#define	GET_PHASE_INFO			0x7f
//#define	SET_PRESCALE_ON			0xd
//#define	SET_PRESCALE_OFF		0xe
//#define	GET_PHASE			0x2c
//#define	SET_KPHASE			0x1f
//#define	GET_KPHASE			0x20
//#define	CLR_PRFL			0x46  
//#define	SET_OUTPUT_HIGH			0x3b
//#define	SET_PHASE_ENC			0x5f
//#define	SET_PHASE_MICRO			0x63
//#define	SET_OUTPUT_STNDRD		0x3c
//#define	SET_STEP_RATIO			0x68
//#define	GET_BUF_MTR_CMD			0x69
//#define	SET_START_VEL			0x6a
//#define	GET_START_VEL			0x6b
//long	set_start_vel(long);
//long	get_start_vel(long);
//long	set_buf_mtr_cmd(long);
//long	get_buf_mtr_cmd(long);
//long	set_phase_brush(long);
//long	set_phase_stepper(long);
//long	set_phase_micro(long);
//long	set_phase_enc(long);
//long	set_phase_hall(long);
//long	set_phase_algor(long);
//long	set_prescale_off(long);
//long	set_prescale_on(long);
//long	set_phase_cnts(long);
//long	set_phase_time(long);
//long	set_phase_offset(long);
//long	init_phase(long);
//long	get_phase_info(long);
//long	get_phase_cnts(long);
//long	get_phase_time(long);
//long	get_phase_offset(long);
//long	get_halls(long);
//long	set_step_ratio(long);
//long	set_output_stndrd(long);
//long	set_output_high(long);
//long	clr_prfl(long);
//long	get_kphase(long);
//long	set_kphase(long);
//long	get_step_ratio(long);
//long	get_hall_sense(long);
//long	set_hall_sense(long);
//long	set_fltr_pivff(long);

//long	set_kv(long);
//long	get_vrsn(long);
//long	set_cnts(long);
//long	get_kv(long);
//long	set_output_dac12(long);
//long	get_phase(long);

⌨️ 快捷键说明

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