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

📄 motor_l298n.c

📁 L298N控制步进电机正反转程序
💻 C
字号:
////////////////////////////////////////////////////////////////////////////
//步进电机驱动
//IO812-IOB15:1,2,3,4
//IOB0,1:PWMA,B
////////////////////////////////////////////////////////////////////////////
#include "SPCE061A.H"

#define ENA   0x0001
#define ENB   0x0002
#define ENAB  0x0003
#define Watchdog_Clear *P_Watchdog_Clear=0x0001

unsigned int Motor_F[]={0x1000,0x3000,0x2000,0x6000,0x4000,0xc000,0x8000,0x9000};//正转
unsigned int Motor_B[]={0x9000,0x8000,0xc000,0x4000,0x6000,0x2000,0x3000,0x1000};//反转

unsigned int i,j;

////////////////////////////////////////////////////////////////////////////
//function:delay
////////////////////////////////////////////////////////////////////////////
void delaynms(unsigned int t)
{                           
   unsigned int k;
   while(t--)
   {
     for(k=0; k<125; k++)
     {
     	Watchdog_Clear;
     }
     Watchdog_Clear;
   }
}

////////////////////////////////////////////////////////////////////////////
//function:正转Cir_Num圈
////////////////////////////////////////////////////////////////////////////
void M_Front(unsigned int Cir_Num)//转1*n圈
{
	for(i=0;i<24*Cir_Num;i++)
	{
		for(j=0;j<8;j++)
		{
			*P_IOB_Data=Motor_F[j]|ENAB;
			delaynms(1);
			Watchdog_Clear;
		}
		Watchdog_Clear;
	}
}

////////////////////////////////////////////////////////////////////////////
//function:反转Cir_Num圈
////////////////////////////////////////////////////////////////////////////
void M_Back(unsigned int Cir_Num)//转1*n圈
{
	for(i=0;i<24*Cir_Num;i++)
	{
		for(j=0;j<8;j++)
		{
			*P_IOB_Data=Motor_B[j]|ENAB;
			delaynms(1);
			Watchdog_Clear;
		}
		Watchdog_Clear;
	}
}


int main()
{
	*P_IOB_Dir=0xffff;
	*P_IOB_Attrib=0xffff;
	
	while(1)
	{
		M_Front(2);
		delaynms(100);//换向延时
		M_Back(2);
		delaynms(100);
		Watchdog_Clear;
	}
}

⌨️ 快捷键说明

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