|
我用的是单四拍驱动,
首先是宏定义部分:
#define LEFT1 GPIO_SetBits(GPIOA, GPIO_Pin_0)
#define LEFT2 GPIO_SetBits(GPIOA, GPIO_Pin_1)
#define LEFT3 GPIO_SetBits(GPIOA, GPIO_Pin_2)
#define LEFT4 GPIO_SetBits(GPIOA, GPIO_Pin_3)
#define RIGHT1 GPIO_SetBits(GPIOA, GPIO_Pin_4)
#define RIGHT2 GPIO_SetBits(GPIOA, GPIO_Pin_5)
#define RIGHT3 GPIO_SetBits(GPIOA, GPIO_Pin_6)
#define RIGHT4 GPIO_SetBits(GPIOA, GPIO_Pin_7)
步进电机驱动相序部分(内有循环)
/*******************左电机驱动************************/
void leftcontrol()
{
int delaytime1=500;
while(1)
{
LEFT1;
delay(delaytime1);
LEFT2;
delay(delaytime1);
LEFT3;
delay(delaytime1);
LEFT4;
delay(delaytime1);
}
}
/*******************右电机驱动************************/
void rightcontrol()
{
int delaytime2=500;
while(1)
{
RIGHT1;
delay(delaytime2);
RIGHT2;
delay(delaytime2);
RIGHT3;
delay(delaytime2);
RIGHT4;
delay(delaytime2);
}
}
主函数部分
/************************main主函数*********************************/
void main()
{
#ifdef DEBUG
void
__error__(char *pcFilename, unsigned long ulLine)
{
}
#endif
GPIO_CONFIG();
leftcontrol();
rightcontrol();
}
由于左右轮都是循环,所以,主函数运行时卡在leftcontrol();左轮转动,右轮不动,问题是:怎么能实现两轮同时转动?有没有什么好的思想?我先在这里拜谢各位大侠了。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|