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

📄 dm_motor_ae250b.c

📁 同步电机的很基础的代码 blackfin 533 motor
💻 C
字号:
/*************************************************************************** 
文件名称: dm_motor_ae250b.c
作者: Andy
版本: 0.1 
创建时间 : 2007-04 
描述: 
	文件实现了ADSP-BF533及DM_KIT_SSK上模块的头文件定义
修改历史: 
****************************************************************************/ 
#include "dm_bf5xx.h"
#include "dm_types.h"

/****************************************************************************
* 名称 : Disable_Motor
* 功能 : 电机控制端不允许
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void Disable_Motor()
{
  *pCtrOut_Flag_OE  =(Out_Flag_OE|MOTOR_OE);
  *pCtrOut_Flag_A = 0x0;
}
/****************************************************************************
* 名称 : Disable_Motor
* 功能 : 电机控制端允许
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void Eable_Motor()
{
	*pCtrOut_Flag_A  = 0x0;
  	*pCtrOut_Flag_OE = (Out_Flag_OE&(~MOTOR_OE));
}
/****************************************************************************
* 名称 : DC_Motor_Enable
* 功能 : 直流电机控制函数
* 入口参数 :Direction  直流电机方向控制  为 0 正转 为 1 反转
* 出口参数 :无
****************************************************************************/
void DC_Motor_Enable (uint8_t Direction)
{
	Eable_Motor();
	if( Direction==0)
	{
		*pCtrOut_Flag_A = Out_Flag_A |MOTOR_A|MOTOR_C;
	}
	if( Direction==1)
	{
		*pCtrOut_Flag_A = Out_Flag_A |MOTOR_B|MOTOR_D;
	}
}
/****************************************************************************
* 名称 : Step_motor
* 功能 : 步进电机控制函数
* 入口参数 :Direction  步进电机方向控制  为 0 正转 为 1 反转
* 出口参数 :无
****************************************************************************/
#define DELAY_US 20000
void Step_motor(int Direction)
{
	uint8_t test;
    if(Direction==0)
	    *pCtrOut_Flag_A  = 0;

	if(Direction==1)
	{	
		*pCtrOut_Flag_A = MOTOR_A;//A
		udelay(DELAY_US);
		*pCtrOut_Flag_A = 0;
		*pCtrOut_Flag_A = MOTOR_C;//C  	 		udelay(0xfff);
		udelay(DELAY_US);
		*pCtrOut_Flag_A = 0;
		*pCtrOut_Flag_A = MOTOR_B;//B
		udelay(DELAY_US);
		*pCtrOut_Flag_A = 0;
		*pCtrOut_Flag_A = MOTOR_D;//D
		udelay(DELAY_US);
		*pCtrOut_Flag_A = 0;
	}
	if(Direction==2)
	{
  		*pCtrOut_Flag_A = MOTOR_D;//D
 		udelay(DELAY_US);
 		*pCtrOut_Flag_A = 0;
 		*pCtrOut_Flag_A = MOTOR_B;//B	 		udelay(0xfff);
 		udelay(DELAY_US);
 		*pCtrOut_Flag_A = 0;
 		*pCtrOut_Flag_A = MOTOR_C;//C
 		udelay(DELAY_US);
 		*pCtrOut_Flag_A = 0;
 	 	*pCtrOut_Flag_A = MOTOR_A;//A
 		udelay(DELAY_US);
 		*pCtrOut_Flag_A = 0;
	}
}

 

/****************************************************************************
* 名称 : DC_motor1
* 功能 : 直流电机1 控制函数
* 入口参数 :Direction  步进电机方向控制  为 0 正转 为 1 反转
* 出口参数 :无
****************************************************************************/
void DC_motor1(int Direction)
{
	if(Direction==0)
		*pCtrOut_Flag_A = 0;
	if(Direction==1)
		*pCtrOut_Flag_A = MOTOR_A;
	if(Direction==2)
		*pCtrOut_Flag_A = MOTOR_B;
}
 /****************************************************************************
* 名称 : DC_motor2
* 功能 : 直流电机2 控制函数
* 入口参数 :Direction  步进电机方向控制  为 0 正转 为 1 反转
* 出口参数 :无
****************************************************************************/   
void DC_motor2(int Direction)
{
	if(Direction==0)
		*pCtrOut_Flag_A = 0;
	if(Direction==1)
		*pCtrOut_Flag_A = MOTOR_C;
	if(Direction==2)
		*pCtrOut_Flag_A = MOTOR_D;
} 

⌨️ 快捷键说明

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