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

📄 drv_s_motor.h

📁 uCOS2 for 51系列
💻 H
字号:
/*********************************************************************************************************
**				                         uC/OS 2 FOR TI TMS320240X
**                                   The Real-Time Kernel(For CCS2.2)
**
**                                  
**                                                V0.00.1
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: Drv_StepStepMotor.H
**创   建   人: 龚树强
**版        本: V0.01.1
**最后修改日期: 2005年5月10日
**描        述: 步进电机控制函数头文件
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 龚树强
** 版  本: V0.01.1
** 日 期: 2005年4月22日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人: 
** 版  本: 
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#ifndef __DRV_S_MOTOR_H__
#define	__DRV_S_MOTOR_H__

/*******************************************************************************
*********************			常	量	定	义			************************
********************************************************************************/


/*******************************************************************************
*********************	    任 务 优 先 级 定 义 		************************
********************************************************************************/
#define	STEPMOTOR_0_PRIO								(STEPMOTOR_CTRL_PRIO)
#define	STEPMOTOR_1_PRIO								(STEPMOTOR_CTRL_PRIO + 1)

/*******************************************************************************
*********************			常	量	定	义			************************
********************************************************************************/  

#define	STEPMOTOR_SELECT_0							'0'
#define	STEPMOTOR_SELECT_1							'1'

#define	STEPMOTOR_KILL_TASK							'k'
#define	STEPMOTOR_SET_MODE							'm'
#define	STEPMOTOR_SET_DIRECTION						'd'
#define	STEPMOTOR_SET_MAX_VELOCITY					'v'
#define	STEPMOTOR_SET_MAX_STEPS						's'
#define	STEPMOTOR_SET_ACCELERATE					'a'

#define	STEPMOTOR_ACTION								'm'
#define	STEPMOTOR_HALT								'h'


#define	MAX_DIVIDER									10
#define	PWM_REPEATE_TIMES							10

#define	STEPMOTOR0_SELECTED							0x01
#define	STEPMOTOR1_SELECTED							0x02


#define	STEP_MOTOR_ACTION							0xAA
#define	STEP_MOTOR_HALT								0x55

#ifndef DIRECTION_FORWARD
#define	DIRECTION_FORWARD							0xAA
#endif

#ifndef DIRECTION_BACKWARD
#define	DIRECTION_BACKWARD							0x55
#endif

#define	STEP_MOTOR_CONTROL_PERIOD_DIVIDER			4

#define	STEP_MOTOR_CONTROL_PERIOD					( OS_TICKS_PER_SEC / STEP_MOTOR_CONTROL_PERIOD_DIVIDER + 1)

typedef	struct stepmotor_property
{
	INT16U		mode;
	INT16U		dir;
	INT16S		dV;
	INT16S		Vm;
	INT16S		Vt;
	INT16S		Vr;
	INT16S		St;
	INT16S		Sr;
	
}STEPMOTOR_PROPERTY;

typedef	struct stepmotor_func
{
	void 	(*SetVelocity)(INT16S);
}STEPMOTOR_FUNC;


typedef struct	stepmotor_ctrl_api
{
	INT8U		ObjLoaded;
	OS_EVENT	*Mbox;
	OS_EVENT	*MboxSem;
}STEPMOTOR_CTRL_API; 
   
typedef	struct stepmotor_ctrl
{
	STEPMOTOR_CTRL_API	api;
	STEPMOTOR_PROPERTY	property;
	STEPMOTOR_FUNC		func;
}STEPMOTOR_CTRL;


extern	const	INT8U	name_stepmotor[];

extern	const	struct	obj_operation	StepMotorOperation; 

/*******************************************************************************
*********************			变	量	定	义			************************
********************************************************************************/  

extern	STEPMOTOR_CTRL			StepMotor0_Ctrl;
extern	OS_STK 					STK_StepMotor0[TASK_STK_SIZE];

extern	STEPMOTOR_CTRL			StepMotor1_Ctrl;
extern	OS_STK 					STK_StepMotor1[TASK_STK_SIZE];



/*******************************************************************************
*********************		功	能	函	数	定	义		************************
********************************************************************************/  


/*********************************************************************************************************
** 函数名称: StepMotor_Init
** 功能描述: StepMotor初始化函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
		void 	StepMotor0_Init(void * pData,INT8U * err);
		
/*********************************************************************************************************
** 函数名称: StepMotorIOCtrl
** 功能描述: StepMotorIO函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
		void 	StepMotorIOCtrl(void * pData,INT8U * err);

/*********************************************************************************************************
** 函数名称: StepMotorLoad
** 功能描述: StepMotor任务装载函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
		void 	StepMotorLoad(void * pData,INT8U * err);

/*********************************************************************************************************
** 函数名称: StepMotorUnLoad
** 功能描述: StepMotor任务卸载函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
		void 	StepMotorUnLoad(void * pData,INT8U * err);

/*********************************************************************************************************
** 函数名称: StepMotorSet
** 功能描述: StepMotor属性调整函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
		void 	StepMotorSet(void * pData,INT8U * err);

/*********************************************************************************************************
** 函数名称: StepMotorTest
** 功能描述: StepMotor测试函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
		void 	StepMotorTest(void * pData,INT8U * err);

/*********************************************************************************************************
** 函数名称: StepMotorDeamon
** 功能描述: StepMotor任务守护函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
		void 	StepMotorDeamon(void * pData,INT8U * err);

/*********************************************************************************************************
** 函数名称: StepMotorIOCtrl
** 功能描述: StepMotorIO函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 






























/*******************************************************************************
*********************			任  务	定	义			************************
********************************************************************************/  

/*********************************************************************************************************
** 函数名称: StepMotorSetVelocity
** 功能描述: 步进电机速度设置函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年5月12日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/   
		void 	StepMotor0SetVelocity( INT16S vt);
 
/*********************************************************************************************************
** 函数名称: ISR_StepMotor
** 功能描述: StepMotor中断控制函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
 		void ISR_StepMotor0(void);

/*********************************************************************************************************
** 函数名称: Task_StepMotor
** 功能描述: StepMotor控制任务函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月22日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  
 
 		void Task_StepMotor(void *pData);


#endif 

⌨️ 快捷键说明

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