新人求助贴,关于步进电机的一些问题

2019-07-21 00:18发布

做步进电机出了点问题,想要正转之后反转,求大神指点。

问题描述
如何在将exv_config(1,480);完成后跳转exv_config(2,480);

下面是部分源代码
主函数
int main (void)
{
   exv_config(1,480);

  exv_config(2,480);

}


其他函数
#define A_ON   PCout(9)=1
#define A_OFF  PCout(9)=0
#define B_ON   PCout(10)=1
#define B_OFF  PCout(10)=0
#define C_ON   PCout(11)=1
#define C_OFF  PCout(11)=0
#define D_ON   PCout(12)=1
#define D_OFF  PCout(12)=0
u8 b;
u8 i;
/*****µ¥Ë«ÅÄ¿ØÖÆ*****/
void exv_config(u8 a,u16 step)
{
   i=0;
   b=step/4;
  delay_init(72);
/****Õýת****/
if(a==1)
  {exv1_io_config();        //pc 9 10 11 12 引脚配置
    while(1){  
            if(i==8&b>1)
       {i=0;
         b--;
        }
          switch(i)
        {case 0:A_ON;B_OFF;C_OFF;D_OFF;break;
         case 1:A_ON;B_ON;C_OFF;D_OFF;break;
         case 2:A_OFF;B_ON;C_OFF;D_OFF;break;
          case 3:A_OFF;B_ON;C_ON;D_OFF;break;   
          case 4:A_OFF;B_OFF;C_ON;D_OFF;break;
         case 5:A_OFF;B_OFF;C_ON;D_ON;break;
         case 6:A_OFF;B_OFF;C_OFF;D_ON;break;
         case 7:A_ON;B_OFF;C_OFF;D_ON;break;
              }  
               delay_ms(5);         
         i++;   
       if(i==9)
       while(1)
       {
        A_OFF;B_OFF;C_OFF;D_OFF;
       };                                        //感觉需要在这里跳出函数,不知道如何跳出到主函数,求大神指点
      }
}

/*****·´×ª*****/
if(a==2)
  {exv1_io_config();
    while(1){  
            if(i==8&b>1)
       {i=0;
         b--;
        }
          switch(i)
        {case 0:A_ON;B_OFF;C_OFF;D_OFF;break;
         case 1:A_ON;B_OFF;C_OFF;D_ON;break;
         case 2:A_OFF;B_OFF;C_OFF;D_ON;break;
          case 3:A_OFF;B_OFF;C_ON;D_ON;break;   
               case 4:A_OFF;B_OFF;C_ON;D_OFF;break;
         case 5:A_OFF;B_ON;C_ON;D_OFF;break;
               case 6:A_OFF;B_ON;C_OFF;D_OFF;break;
               case 7:A_ON;B_ON;C_OFF;D_OFF;break;
              }  
               delay_ms(5);         
         i++;   
       if(i==9)
       while(1)
       {
        A_OFF;B_OFF;C_OFF;D_OFF;
       };
      }
}
}

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