怎么让程序停下来
时间:10-02
整理:3721RD
点击:
我自己编的一个程序,想让舵机正转45度延时10ms后反转45度然后停下来,可是舵机一直重复刚才的动作,怎么让它执行一次就停下来。
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit pwm1=P1^0;
unsigned char i,j,t1,t2;
void delay500us(uint x) //误差 -0.868055555556us //0.5ms
{
unsigned char a,b;
while(x--)
for(b=1;b>0;b--)
for(a=227;a>0;a--);
}
void pwm360zhengzhuan(t1)
{for(i=t1;i>0;i--) //输出1ms的PWM波
{
pwm1 = 1; //舵机先转向-45度
delay500us(2);//1MS
pwm1 = 0;
delay500us(38);//19MS
}
delay500us(10 );//延时5MS
for(j=10;j>0;j--)//
{
pwm1 = 1; //延时后 舵机转向0度
delay500us( 3 );//1.5MS
pwm1= 0 ;
delay500us( 37 );//18.5MS
}
delay500us(10);
pwm1=0;
}
void pwm360fanzhuan(t2)
{for(i=t2;i>0;i--) //输出1ms的PWM波
{
pwm1 = 1; //舵机先转向+45度
delay500us(4);//1MS
pwm1 = 0;
delay500us(36);//19MS
}
delay500us(10 );//延时5MS
for(j=10;j>0;j--)//
{
pwm1 = 1; //延时后 舵机转向0度
delay500us( 3 );//1.5MS
pwm1= 0 ;
delay500us( 37 );//18.5MS
}
delay500us(10);
pwm1=0;
}
void main()
{
pwm360zhengzhuan(20);
delay500us(20);
pwm360fanzhuan(30);
pwm1=0;
}
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit pwm1=P1^0;
unsigned char i,j,t1,t2;
void delay500us(uint x) //误差 -0.868055555556us //0.5ms
{
unsigned char a,b;
while(x--)
for(b=1;b>0;b--)
for(a=227;a>0;a--);
}
void pwm360zhengzhuan(t1)
{for(i=t1;i>0;i--) //输出1ms的PWM波
{
pwm1 = 1; //舵机先转向-45度
delay500us(2);//1MS
pwm1 = 0;
delay500us(38);//19MS
}
delay500us(10 );//延时5MS
for(j=10;j>0;j--)//
{
pwm1 = 1; //延时后 舵机转向0度
delay500us( 3 );//1.5MS
pwm1= 0 ;
delay500us( 37 );//18.5MS
}
delay500us(10);
pwm1=0;
}
void pwm360fanzhuan(t2)
{for(i=t2;i>0;i--) //输出1ms的PWM波
{
pwm1 = 1; //舵机先转向+45度
delay500us(4);//1MS
pwm1 = 0;
delay500us(36);//19MS
}
delay500us(10 );//延时5MS
for(j=10;j>0;j--)//
{
pwm1 = 1; //延时后 舵机转向0度
delay500us( 3 );//1.5MS
pwm1= 0 ;
delay500us( 37 );//18.5MS
}
delay500us(10);
pwm1=0;
}
void main()
{
pwm360zhengzhuan(20);
delay500us(20);
pwm360fanzhuan(30);
pwm1=0;
}
虽然我看不大懂,但是觉得程序可以加上一个计数模块,次数设置为1,执行程序后判断计数的次数,达到1后停止程序
大神勿喷
加个while(1),不就停了
谢谢了,真停了,但是为什么呢,加while(1)不是让程序一直走的意思么
是在原地走,不就跟停一样了。
谢了,长知识了
这个…菜鸟到什么程度啊,估计步进电机的程序拷贝的吧。