做步进电机出了点问题,想要正转之后反转,求大神指点。
问题描述
如何在将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;
};
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>