Member 12962004 Ответов: 1

Как я могу запустить следующий код в turbo C++?


//This program is used to control a robot using a app
//Error Code Chart: Code 01; Turnradius is higher than Speed; Code 02; Speed is higher than 255;
#define in1 5 //L298n Motor Driver pins.
#define in2 6
#define in3 10
#define in4 11
#define LED 13
int command; //Int to store app command state.
int Speed = 204; // 0 - 255.
int Speedsec;
int buttonState = 0;
int lastButtonState = 0;
int Turnradius = 0; //Set the radius of a turn, 0 - 255 Note:the robot will malfunction if this is higher than int Speed.
int brakeTime = 45;
int brkonoff = 1; //1 for the electronic braking system, 0 for normal.
int pinmode(int, OUTPUT)
int analogwrite(int, Speed)
int digitalwrite(int, High)
void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  pinMode(LED, OUTPUT); //Set the LED pin.
  Serial.begin(9600);  //Set the baud rate to your Bluetooth module.
}

void loop() {
  if (Serial.available() > 0) {
    command = Serial.read();
    Stop(); //Initialize with motors stoped.
    switch (command) {
      case 'F':
        forward();
        break;
      case 'B':
        back();
        break;
      case 'L':
        left();
        break;
      case 'R':
        right();
        break;
      case 'G':
        forwardleft();
        break;
      case 'I':
        forwardright();
        break;
      case 'H':
        backleft();
        break;
      case 'J':
        backright();
        break;
      case '0':
        Speed = 100;
        break;
      case '1':
        Speed = 140;
        break;
      case '2':
        Speed = 153;
        break;
      case '3':
        Speed = 165;
        break;
      case '4':
        Speed = 178;
        break;
      case '5':
        Speed = 191;
        break;
      case '6':
        Speed = 204;
        break;
      case '7':
        Speed = 216;
        break;
      case '8':
        Speed = 229;
        break;
      case '9':
        Speed = 242;
        break;
      case 'q':
        Speed = 255;
        break;
    }
    Speedsec = Turnradius;
    if (brkonoff == 1) {
      brakeOn();
    } else {
      brakeOff();
    }
  }
}

void forward() {
  analogWrite(in1, Speed);
  analogWrite(in3, Speed);
}

void back() {
  analogWrite(in2, Speed);
  analogWrite(in4, Speed);
}

void left() {
  analogWrite(in3, Speed);
  analogWrite(in2, Speed);
}

void right() {
  analogWrite(in4, Speed);
  analogWrite(in1, Speed);
}
void forwardleft() {
  analogWrite(in1, Speedsec);
  analogWrite(in3, Speed);
}
void forwardright() {
  analogWrite(in1, Speed);
  analogWrite(in3, Speedsec);
}
void backright() {
  analogWrite(in2, Speed);
  analogWrite(in4, Speedsec);
}
void backleft() {
  analogWrite(in2, Speedsec);
  analogWrite(in4, Speed);
}

void Stop() {
  analogWrite(in1, 0);
  analogWrite(in2, 0);
  analogWrite(in3, 0);
  analogWrite(in4, 0);
}

void brakeOn() {
  //Here's the future use: an electronic braking system!
  // read the pushbutton input pin:
  buttonState = command;
  // compare the buttonState to its previous state
  if (buttonState != lastButtonState) {
    // if the state has changed, increment the counter
    if (buttonState == 'S') {
      if (lastButtonState != buttonState) {
        digitalWrite(in1, HIGH);
        digitalWrite(in2, HIGH);
        digitalWrite(in3, HIGH);
        digitalWrite(in4, HIGH);
        delay(brakeTime);
        Stop();
      }
    }
    // save the current state as the last state,
    //for next time through the loop
    lastButtonState = buttonState;
  }
}
void brakeOff() {

}


Что я уже пробовал:

это дает много ошибок, это кодирование arduino, но я должен сделать это на turbo C++.

Patrice T

Определите "это дает много ошибок"

Member 12962004

давать такие ошибки, как:
16: выход не объявлен
17: ожидаемый init-Декларатор перед "int"
17: ожидаемый" или "до" int"
в функции " void loop()"
29:" серийный " необъявленный
31: "стоп" необъявленный
и многие другие подобные вещи в dev c++

Michael_Davies

Точки с запятой отсутствуют в следующих случаях:

int pinmode(int, OUTPUT)
int analogwrite(int, скорость)
int digitalwrite(int, High)

Member 12962004

когда я ставлю точку с запятой это снова дает те же ошибки

Michael_Davies

Покажите свой исправленный код и ошибки прямо сейчас.

Kornfeld Eliyahu Peter

Это не имеет ничего общего с точками с запятой, все дело в компиляции специфического кода Arduino на ПК с Turbo C...
Ни библиотек, ни портов, ничего

Member 12962004

я не понимаю вашу точку зрения, не могли бы вы объяснить, пожалуйста..

Michael_Davies

Я согласен, что это еще не все, однако есть синтаксические ошибки, и отсутствующие точки с запятой дают ошибки ниже и, следовательно, имеют к этому какое-то отношение.

17: ожидаемый init-Декларатор перед "int"
17: ожидаемый" или "до" int"
в функции " void loop()"

Kornfeld Eliyahu Peter

Вы правы... Я бы сказал: это не самое главное... :-)

Member 12962004

спасибо вам всем :)

1 Ответов

Рейтинг:
5

Kornfeld Eliyahu Peter

Этот код был написан для Arduino и использует методы из библиотек, которые у вас есть только на Arduino...
Простой проект Turbo C не будет иметь всех этих библиотек, поэтому у вас будет несколько ошибок компиляции.
В конце концов, даже если вы каким-то образом свяжетесь с нужными библиотеками, скомпилированный код потерпит неудачу на Arduino и на вашем компьютере...

Так что если вы хотите играть с Arduino и робототехникой, то используйте Arduino IDE и плату...
Если вы хотите играть с Turbo C и robotics, ищите правильный образец...


Member 12962004

можете ли вы помочь мне сделать это в turbo c++ или dev?

Kornfeld Eliyahu Peter

Зачем вы задаете вопросы, если вы пренебрегаете ответами-придумывайте свои собственные ответы!!!

Member 12962004

я не пренебрег твоим ответом