void run(int left ,int right,int leftzt,int rightzt ) { PWM_Set1(left); PWM_Set2(right); one_zhuan(leftzt); to_zhuan(rightzt); }
时间: 2023-12-11 10:02:07 浏览: 24
这是一个带有四个参数的函数 `run`,参数类型均为整数。函数内部执行了以下操作:
1. 使用 `PWM_Set1` 函数设置左侧电机的 PWM 值,参数为 `left`。
2. 使用 `PWM_Set2` 函数设置右侧电机的 PWM 值,参数为 `right`。
3. 使用 `one_zhuan` 函数将左侧电机转动到指定方向,参数为 `leftzt`。
4. 使用 `to_zhuan` 函数将右侧电机转动到指定方向,参数为 `rightzt`。
相关问题
void InsertSort(int left, int right) {
这是一个插入排序的函数,它可以对一个数组中的元素进行排序。left和right分别表示数组的左右边界。
函数的具体实现如下:
1. 从left+1开始遍历数组,依次将元素插入到前面已经排好序的序列中。
2. 对于每一个待插入的元素,将它与前面的元素进行比较,直到找到一个位置,使得它前面的元素都比它小,后面的元素都比它大。
3. 将该元素插入到该位置,然后继续遍历下一个待插入的元素,直到遍历完整个数组。
函数的代码如下:
```
void InsertSort(int left, int right) {
for(int i=left+1; i<=right; i++) {
int j = i-1;
int temp = a[i];
while(j>=left && a[j]>temp) {
a[j+1] = a[j];
j--;
}
a[j+1] = temp;
}
}
```
其中,a是待排序的数组。
void motor_set_PWM(int left, int right) { //pwm_clock_init(); if(left==0){ pwm_duty(left_forward,left); pwm_duty(left_back,left); } else if (left > 0) { pwm_duty(left_forward,left); pwm_duty(left_back,0); } else { pwm_duty(left_forward,0); pwm_duty(left_back,-left); } if(right==0){ pwm_duty(right_forward,right); pwm_duty(right_back,right); } else if (right > 0) { pwm_duty(right_back,0); pwm_duty(right_forward,right); } else { pwm_duty(right_forward,0); pwm_duty(right_back,-right); } } 这是一段设置pwm占空比来调整小车转速的代码,请告诉我如何更好地避免小车前进的同时轮子后退,导致小车轮子不转
为了避免小车前进时轮子后退,你可以在设置 PWM 占空比之前添加一些逻辑判断。下面是一个修改后的代码示例:
```cpp
void motor_set_PWM(int left, int right) {
// 判断左轮方向
if(left == 0){
pwm_duty(left_forward, left);
pwm_duty(left_back, left);
}
else if(left > 0){
pwm_duty(left_forward, left);
pwm_duty(left_back, 0);
}
else{
pwm_duty(left_forward, 0);
pwm_duty(left_back, -left);
}
// 判断右轮方向
if(right == 0){
pwm_duty(right_forward, right);
pwm_duty(right_back, right);
}
else if(right > 0){
pwm_duty(right_forward, right);
pwm_duty(right_back, 0);
}
else{
pwm_duty(right_forward, 0);
pwm_duty(right_back, -right);
}
// 额外判断,如果左右轮方向相反,则将左右轮占空比都设为0
if((left > 0 && right < 0) || (left < 0 && right > 0)){
pwm_duty(left_forward, 0);
pwm_duty(left_back, 0);
pwm_duty(right_forward, 0);
pwm_duty(right_back, 0);
}
}
```
这样,当左右轮方向相反时,会将左右轮的占空比都设置为0,从而避免小车前进时轮子后退的情况发生。