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

📄 bjdj_4.c

📁 利用mega128控制由L298和L297构成的驱动板
💻 C
字号:
//电机转一圈走27MM
#include <iom128v.h>
#include <iom128.h>
#include <macros.h>
#include "BIT.h"
#include "zlg7290_avr.c"

#define uint unsigned int
#define uchar unsigned char
/*********电机1控制端口************/
#define  cw1  _PA1
#define  hf1  _PA3
#define  en1  _PA5
#define  rst1  _PA7
#define  clk1  _PC6

/*********电机2控制端口************/
#define  cw2  _PA0
#define  hf2  _PA2
#define  en2  _PA4
#define  rst2  _PA6
#define  clk2  _PG2

//uint bjl,rev,key,set=0;
/*******************************************
函数名称: delayus
功    能: 延时指定微秒(16M晶振)
参    数: us--延时的微秒数(大约,不是很精确,MS越大越准确)
返回值  : 无
/********************************************/
void delayus(uint us)		  
{
 uint i;
 us=us*5/2;		  	 //9/8是在16MHz晶振下,通过反复实验得到的数值
 for( i=0;i<us;i++); 
}

/*******************************************
函数名称: delayms()
功    能: 16MHz晶振下延时 z ms 
参    数: z
返回值  : 无
/********************************************/
void delayms(uint z)
{
   uint x,y;
   for(x=z;x>0;x--)
    for(y=2660;y>0;y--);
}

void bjdj_init1()
{
   DDRA|=BIT(1)|BIT(3)|BIT(5)|BIT(7);
   DDRC|=BIT(6);
   cw1=1;  //  0:正传  1:反转
   en1=0;  //
   rst1=0;//
   hf1=0;//  0:半步  1:整步
}

void bjdj_init2()
{
   DDRA|=BIT(0)|BIT(2)|BIT(4)|BIT(6);
   DDRG|=BIT(2);
   cw2=1;//0:正传  1:反转
   en2=0;//
   rst2=0;//
   hf2=0;//0:半步  1:整步
}


void main()
{
   uint i,dat;
   bjdj_init1();
   bjdj_init2();
   clk1=1;
   clk2=1;
   while(1)
   {
     
      clk1=1;
	  clk2=1;
	  delayms(2);
	  clk1=0;
	  clk2=0;
	  delayms(2);
   }
}

⌨️ 快捷键说明

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