[求助] 步进疑问

卢二都   2009-7-11 15:32 楼主
#include
#include "math.h"
unsigned char z,z1;//取步序
unsigned int lj1=0;//a电机累加次数
unsigned int lj2=0; //b电机累加次数
unsigned char pda,pdb;//判断正反转
unsigned char x1=0,x2=0;  //x坐标
unsigned char y1=0,y2=0;  //y坐标
unsigned char a=0;  //计算得到的A电机步数   
unsigned char b=0;  //计算得到的B步进电机的步数
unsigned char na,nb,n2;
unsigned char L1,L2,L3,L4;   //定义线的长度
unsigned char code arunza[4]={0xef,0xdf,0xbf,0x7f};  //A电机正转
unsigned char code arunzb[4]={0xfe,0xfd,0xfb,0xf7};  //A电机正转
void fuzhizouxian()   //**********赋值走线**********//
{ //x1,x2,y1,y2自己赋值//
  x1=1;x2=2;y1=10;y2=10;
  L1=sqrt((x1+3)*(x1+3)+(43-y1)*(43-y1));  //求L1长度
  L2=sqrt((43-x1)*(43-x1)+(43-y1)*(43-y1));    //求L2长度
  L3=sqrt((x2+3)*(x2+3)+(43-y2)*(43-y2));   //求L3长度
  L4=sqrt((43-x2)*(43-x2)+(43-y2)*(43-y2));    //求L4长度
  if(L3>L1) {pda=1;a=48*(L3-L1);}       //
  if(L3   if(L4>L2) {pdb=1;b=48*(L4-L2);}     //
  if(L4    n2=25你;//事先设定的定时累加次数,一般可以根据情况设定为最佳值
  if(a>b){na=n2;nb=a*n2/b;}       //对a,b进行比较大小,步数多的走的快,步数少的走的慢
    else if(a
}
void zruna()// 正转运行
{
   P1=arunza[z];
   
         
}
void zrunb()// 正转运行
{
   P1=P1&arunzb[z1];
   
         
}
void dingshi()  interrupt  1
{   //pda=2;pdb=1;//供试验方便
P1=0xff;//停止两个电机转动
    lj1++;  //a电机定时次数加1
    lj2++; //b电机定时次数加1
     if(lj1==na)   //到累加定时时间
      { lj1=0; //累加次数到,累加次数清零
        zruna();
    if(pda==1)    //a电机正转
       { z++;    //步序加1
      if(z==4)z=0;
     }
   if(pda==2)  //a电机反转
       { z--;    //步序减1
      if(z==-1)z=3;
     }
   
    }
     if(lj2==nb)//到累加定时时间
      { lj2=0; //累加次数到,累加次数清零
        zrunb();
    if(pdb==1) //b电机正转
       { z1++;    //步序加1
      if(z1==4)z1=0;
     }
    if(pdb==2)  //b电机反转
       { z1--;    //步序减1
      if(z1==-1)z1=3;
     }
   
   
    }
}
void main()
{ TMOD=0X02;//方式2定时
  TH0=156;
  TL0=156; //12MHz晶振,定时0.1ms
  TR0=1;
  ET0=1;
  EA=1;
  z=0;z1=0; //数步序的变量进行初始化
  
   while(1)
      {
    fuzhizouxian();   //**********赋值走线**********//
   }

}
老师以上是我们这一组编写的与步进有关的程序,其中让两个步进电机同步的程序有问题。问题是:b电机正常转动,a电机只发出声音,但不转动。
老师,我是按你的方法写的,你帮我分析一下问题的所在。

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复