📄 bjdj_4.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 + -