📄 step_motor.c
字号:
/*============================================================
File Name :Step_Motor.c
说明 :
1. 以单极 2相磁化方式使步进电机正向旋转
=============================================================*/
#include <avr/io.h>
#include <avr/delay.h>
const unsigned char two_phase[]={0x01,0x04,0x08,0x02};
volatile unsigned char phase_pnt;
void delay(unsigned int d1,unsigned int d2);
void go_step_2phase(unsigned int time);
int main(void)
{
DDRD=0xf0; // 端口 D的高4位=输出, 低4位=输入
while(1)
{
go_step_2phase(700); // time = 700= 1.5ms
} // 增大时间,速度就会减小;减小时间,速度就会增大
}
void delay(unsigned int d1,unsigned int d2)
{
unsigned int i,j;
for(i=0;i<d1;i++)
{
for(j=0;j<d2;j++);
}
}
void go_step_2phase(unsigned int time)
{
PORTD=two_phase[phase_pnt++]<<4; // 输出高4位的值
phase_pnt&0x03; // 若(phase_pnt==4),则phase_pnt=0
delay(time,100);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -