怎么让程序停下来

2019-07-15 14:25发布

我自己编的一个程序,想让舵机正转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;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。