想用三个按键执行电机的正反转,程序如下:
void key_control(HAL_Handle handle)
{
HAL_Obj *obj = (HAL_Obj *)handle;
if(GPIO_read(obj->gpioHandle,GPIO_Number_12)==LOW)
{
usDelay(500);
if(GPIO_read(obj->gpioHandle,GPIO_Number_12)==LOW)
{
//CTRL_setSpd_ref_krpm(ctrlHandle,_IQ(0.8));
gMotorVars.SpeedRef_krpm=_IQ24(1.8);
CTRL_setSpd_ref_krpm(ctrlHandle,gMotorVars.SpeedRef_krpm);
}
}
if(GPIO_read(obj->gpioHandle,GPIO_Number_13)==LOW)
{
usDelay(500);
if(GPIO_read(obj->gpioHandle,GPIO_Number_13)==LOW)
{
{
HAL_Obj *obj = (HAL_Obj *)handle;
if(GPIO_read(obj->gpioHandle,GPIO_Number_12)==LOW)
{
usDelay(500);
if(GPIO_read(obj->gpioHandle,GPIO_Number_12)==LOW)
{
//CTRL_setSpd_ref_krpm(ctrlHandle,_IQ(0.8));
gMotorVars.SpeedRef_krpm=_IQ24(1.8);
CTRL_setSpd_ref_krpm(ctrlHandle,gMotorVars.SpeedRef_krpm);
}
}
if(GPIO_read(obj->gpioHandle,GPIO_Number_13)==LOW)
{
usDelay(500);
if(GPIO_read(obj->gpioHandle,GPIO_Number_13)==LOW)
{
CTRL_setSpd_ref_krpm(ctrlHandle,_IQ24(-1.8));
}
}
if(GPIO_read(obj->gpioHandle,GPIO_Number_22)==LOW)
{
usDelay(500);
if(GPIO_read(obj->gpioHandle,GPIO_Number_22)==LOW)
{
for(;;)
{
}
if(GPIO_read(obj->gpioHandle,GPIO_Number_22)==LOW)
{
usDelay(500);
if(GPIO_read(obj->gpioHandle,GPIO_Number_22)==LOW)
{
for(;;)
{
CTRL_setSpd_ref_krpm(ctrlHandle,_IQ24(1.8)); // set the speed reference
usDelay(500);
CTRL_setSpd_ref_krpm(ctrlHandle,_IQ24(-1.8));
usDelay(5);
}
}
}
}
usDelay(500);
CTRL_setSpd_ref_krpm(ctrlHandle,_IQ24(-1.8));
usDelay(5);
}
}
}
}
为什么按键始终没有反应?
比较急,麻烦各位帮帮忙!