将下列语句改为switch-case语句if (gpio_get(B2) && gpio_get(B3) && (gpio_get(B4) == 0) && (gpio_get(B1) == 1))//3 { ftm_pwm_duty(ftm1,ftm_ch0,55); //左大 TurnRight( 300); } if((gpio_get(B3) && gpio_get(B4)==0) && (gpio_get(B1) && gpio_get(B2)==1))//4 { ftm_pwm_duty(ftm1,ftm_ch0,60); //左中 TurnRight( 300); } if((gpio_get(B1) && gpio_get(B2) && gpio_get(B3)==1) && (gpio_get(B4)==0))//5 { ftm_pwm_duty(ftm1,ftm_ch0,65); //左小 TurnRight( 300); } if ((gpio_get(B1) == 1) && (gpio_get(B2) == 1) && (gpio_get(B3) == 1) && (gpio_get(B4) == 1))//1 { ftm_pwm_duty(ftm1,ftm_ch0,65); //当面前为横线,左小 TurnRight( 300); } if ((gpio_get(B1) == 0) && (gpio_get(B2) == 0) && (gpio_get(B3) == 0) && (gpio_get(B4) == 0))//2 { ftm_pwm_duty(ftm1,ftm_ch0,55); //当面前无线,左大 TurnRight( 300); } if((gpio_get(B1) && gpio_get(B2) && gpio_get(B3)==0) && (gpio_get(B4)==1))//6 { ftm_pwm_duty(ftm1,ftm_ch0,120); //右大 TurnRight( 300); } if((gpio_get(B3) && gpio_get(B4)==1) && (gpio_get(B1) && gpio_get(B2)==0))//7 { ftm_pwm_duty(ftm1,ftm_ch0,100); //右中 TurnRight( 300); }
时间: 2024-04-11 10:28:43 浏览: 16
switch语句的实现方式如下:
```cpp
int condition = 0;
if (gpio_get(B2) && gpio_get(B3) && (gpio_get(B4) == 0) && (gpio_get(B1) == 1)) //3
{
condition = 3;
}
else if ((gpio_get(B3) && gpio_get(B4) == 0) && (gpio_get(B1) && gpio_get(B2) == 1)) //4
{
condition = 4;
}
else if ((gpio_get(B1) && gpio_get(B2) && gpio_get(B3) == 1) && (gpio_get(B4) == 0)) //5
{
condition = 5;
}
else if ((gpio_get(B1) == 1) && (gpio_get(B2) == 1) && (gpio_get(B3) == 1) && (gpio_get(B4) == 1)) //1
{
condition = 1;
}
else if ((gpio_get(B1) == 0) && (gpio_get(B2) == 0) && (gpio_get(B3) == 0) && (gpio_get(B4) == 0)) //2
{
condition = 2;
}
else if ((gpio_get(B1) && gpio_get(B2) && gpio_get(B3) == 0) && (gpio_get(B4) == 1)) //6
{
condition = 6;
}
else if ((gpio_get(B3) && gpio_get(B4) == 1) && (gpio_get(B1) && gpio_get(B2) == 0)) //7
{
condition = 7;
}
switch (condition)
{
case 3:
ftm_pwm_duty(ftm1, ftm_ch0, 55); //左大
TurnRight(300);
break;
case 4:
ftm_pwm_duty(ftm1, ftm_ch0, 60); //左中
TurnRight(300);
break;
case 5:
ftm_pwm_duty(ftm1, ftm_ch0, 65); //左小
TurnRight(300);
break;
case 1:
ftm_pwm_duty(ftm1, ftm_ch0, 65); //当面前为横线,左小
TurnRight(300);
break;
case 2:
ftm_pwm_duty(ftm1, ftm_ch0, 55); //当面前无线,左大
TurnRight(300);
break;
case 6:
ftm_pwm_duty(ftm1, ftm_ch0, 120); //右大
TurnRight(300);
break;
case 7:
ftm_pwm_duty(ftm1, ftm_ch0, 100); //右中
TurnRight(300);
break;
default:
break;
}
```
这样可以将原先的if-else语句转换为switch-case语句,根据不同的条件执行相应的代码块。