#include "SteperMotor.h"
#define StepMotor_Value 256
unsigned char StepMotor_Direc=0;
unsigned char StepMotor_Busy=0;
unsigned char StepMotor_EN=0;
void Stepper_Motor()
{
static unsigned int Step_Value;
static unsigned char Step_Con;
if(StepMotor_EN)
{
if(StepMotor_Busy==0)
{
StepMotor_Busy=1;
Step_Con=0;
Step_Value=StepMotor_Value;
}
else
{
switch(Step_Con)
{
case 0:
{
if(StepMotor_Direc)
{
StepMoto_Pin1_Set();
StepMoto_Pin2_Clr();
StepMoto_Pin3_Clr();
StepMoto_Pin4_Clr();
}
else
{
StepMoto_Pin1_Clr();
StepMoto_Pin2_Clr();
StepMoto_Pin3_Clr();
StepMoto_Pin4_Set();
}
Step_Con++;
break;
}
case 1:
{
if(StepMotor_Direc)
{
StepMoto_Pin1_Clr();
StepMoto_Pin2_Set();
StepMoto_Pin3_Clr();
StepMoto_Pin4_Clr();
}
else
{
StepMoto_Pin1_Clr();
StepMoto_Pin2_Clr();
StepMoto_Pin3_Set();
StepMoto_Pin4_Clr();
}
Step_Con++;
break;
}
case 2:
{
if(StepMotor_Direc)
{
StepMoto_Pin1_Clr();
StepMoto_Pin2_Clr();
StepMoto_Pin3_Set();
StepMoto_Pin4_Clr();
}
else
{
StepMoto_Pin1_Clr();
StepMoto_Pin2_Set();
StepMoto_Pin3_Clr();
StepMoto_Pin4_Clr();
}
Step_Con++;
break;
}
case 3:
{
if(StepMotor_Direc)
{
StepMoto_Pin1_Clr();
StepMoto_Pin2_Clr();
StepMoto_Pin3_Clr();
StepMoto_Pin4_Set();
}
else
{
StepMoto_Pin1_Set();
StepMoto_Pin2_Clr();
StepMoto_Pin3_Clr();
StepMoto_Pin4_Clr();
}
Step_Con=0;
Step_Value--;
if(Step_Value==0)
{
StepMotor_EN=0;
StepMotor_Busy=0;
StepMoto_Pin1_Clr();
StepMoto_Pin2_Clr();
StepMoto_Pin3_Clr();
StepMoto_Pin4_Clr();
}
break;
}
}
}
}
}
void Step_Moto_Init() //3õê¼»ˉPB13£¬14£¬15oíPA8
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
StepMoto_Pin1_Clr();
StepMoto_Pin2_Clr();
StepMoto_Pin3_Clr();
StepMoto_Pin4_Clr();
}
|