bug fix static in motor und speed
This commit is contained in:
+44
-15
@@ -38,10 +38,17 @@ MoveControl::~MoveControl() {
|
||||
}
|
||||
|
||||
void MoveControl::loop() {
|
||||
this->left_motor->loop();
|
||||
this->right_motor->loop();
|
||||
this->left_speedometer->loop();
|
||||
this->right_speedometer->loop();
|
||||
uint16_t left_motor_time = this->left_motor->loop();
|
||||
uint16_t right_motor_time = this->right_motor->loop();
|
||||
uint16_t left_speed_time = this->left_speedometer->loop();
|
||||
uint16_t right_speed_time = this->right_speedometer->loop();
|
||||
|
||||
if (left_motor_time > 50
|
||||
|| right_motor_time > 50
|
||||
|| left_speed_time > 50
|
||||
|| right_speed_time > 50) {
|
||||
Serial.printf("left M: %d, right M %d, left S %d, right S %d in moveControl::loop\n", left_motor_time, right_motor_time, left_speed_time, right_speed_time);
|
||||
}
|
||||
|
||||
static uint64_t last_millis = 0;
|
||||
if (millis() - last_millis < delay)
|
||||
@@ -63,6 +70,19 @@ void MoveControl::runMoveControl() {
|
||||
|
||||
void MoveControl::setDrivingStatus(DrivingStatus status) {
|
||||
this->driving_status = status;
|
||||
// switch (this->driving_status) {
|
||||
// case DrivingStatus::stop :
|
||||
// Serial.println("New drivingState = stop in MoveControl::setDrivingStatus");
|
||||
// break;
|
||||
|
||||
// case DrivingStatus::drive :
|
||||
// Serial.println("New drivingState = drive in MoveControl::setDrivingStatus");
|
||||
// break;
|
||||
|
||||
// default:
|
||||
// Serial.println("Wrong drivingState in MoveControl::regulateMotors");
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
|
||||
void MoveControl::setSpeed(double speed) {
|
||||
@@ -114,19 +134,28 @@ void MoveControl::calcTargetWheelSpeed() {
|
||||
|
||||
void MoveControl::regulateMotors() {
|
||||
switch (this->driving_status) {
|
||||
case DrivingStatus::stop :
|
||||
this->left_motor->setTargetPower(0);
|
||||
this->right_motor->setTargetPower(0);
|
||||
break;
|
||||
case DrivingStatus::stop :
|
||||
this->left_motor->setTargetPower(0);
|
||||
this->right_motor->setTargetPower(0);
|
||||
// Serial.println("in stop MoveControl::regulateMotors");
|
||||
// if (abs(left_speedometer->getSpeed()) > 0.2) {
|
||||
// Serial.printf("Left Motor Target: %d, Ist: %d\n", this->left_motor->getTargetPower(), this->left_motor->getPower());
|
||||
// Serial.printf("Left Speedometer speed: %f\n", this->left_speedometer->getSpeed());
|
||||
// }
|
||||
// if (abs(right_speedometer->getSpeed()) > 0.2) {
|
||||
// Serial.printf("Right Motor Target: %d, Ist: %d\n", this->right_motor->getTargetPower(), this->right_motor->getPower());
|
||||
// Serial.printf("Right Speedometer speed: %f\n", this->right_speedometer->getSpeed());
|
||||
// }
|
||||
break;
|
||||
|
||||
case DrivingStatus::drive :
|
||||
this->left_motor->setTargetPower( (int8_t) this->left_pid_out);
|
||||
this->right_motor->setTargetPower( (int8_t) this->right_pid_out);
|
||||
break;
|
||||
case DrivingStatus::drive :
|
||||
this->left_motor->setTargetPower( (int8_t) this->left_pid_out);
|
||||
this->right_motor->setTargetPower( (int8_t) this->right_pid_out);
|
||||
break;
|
||||
|
||||
default:
|
||||
Serial.println("Wrong drivingState in MoveControl::regulateMotors");
|
||||
break;
|
||||
default:
|
||||
Serial.println("Wrong drivingState in MoveControl::regulateMotors");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user