Помогите найти ошибку.

ROVER-755
Offline
Зарегистрирован: 26.09.2016

Всем привет!

Скачал скетч приёмника радиоуправляемого танка. При компиляции выдает ошибку.

Помогите пожалуйста или ткните куда копать.

 

#define led 8
#include <SPI.h>
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL; 
//int msg[1];
int msg[1];
int msh[1];
boolean ledOn = false;
boolean lastBut = HIGH;
long time = 0;  
long debounce = 300;
int data; 
int data1; 
int pos;
int fspeed; // движение вперед
int bspeed; // движение назад
int steer;
int MotoL, MotoR;
int ValStickX, ValStickY;
const int in1 = 7; // direction pin 1
const int in2 = 6; // direction pin 2
const int in3 = 4; // direction pin 1
const int in4 = 2; // direction pin 2
const int ena = 5; // PWM pin to change speed
const int enb = 3; 
byte IsConnect;
void setup()
{
  pinMode(led, OUTPUT);
  Serial.begin(9600);
  pinMode(in1, OUTPUT); // connection to L298n
  pinMode(in2, OUTPUT); // connection to L298n
  pinMode(ena, OUTPUT); // connection to L298n
  pinMode(in3, OUTPUT); // connection to L298n
  pinMode(in4, OUTPUT); // connection to L298n
  pinMode(enb, OUTPUT); // connection to L298n
  //servo1.attach(3); 
  // delay(10);
  radio.begin();
  radio.openReadingPipe(1,pipe); 
 // radio.openReadingPipe(pipe); 
  radio.startListening();
}


void loop() {

  if (radio.available()){
    radio.read(msg, 1);
    IsConnect = HIGH;
  }
  else{
    IsConnect = LOW;
  }

if (msh[1] == 255 && lastBut == HIGH && millis() - time > debounce)
{
ledOn = !ledOn;
lastBut = HIGH;
 time = millis();
}
else // Иначе,
{
  lastBut = digitalRead(lastBut);
 
 }  
  digitalWrite(led, ledOn);


Serial.println(msh[1]);

  if (msg[0] <128 && msg[0] >-1){ 
    data = msg[0]; 
    ValStickX = map(data, 0, 127, -255, 254); 
  } 

  if (msg[0] < 254 && msg[0] > 127){ 
    data = msg[0]; 
    ValStickY = map(data, 128, 255, -255, 254); 
  }


  if(abs(ValStickX) < 20){
    ValStickX = 0;
  }
  if(abs(ValStickY) < 20){
    ValStickY = 0;
  }

  MotoL = ValStickX - (ValStickY /1.2); 
  MotoR = ValStickX + (ValStickY /1.2);
  if(IsConnect==LOW){
    MotoL=0;
  }
  if(IsConnect==LOW){
    MotoR=0;
  }
//  Serial.println("ML: "+String(MotoL)+", MR: "+String(MotoR));

  if(MotoL > 255){
    MotoL = 255;
  }
  if(MotoR > 255){
    MotoR = 255;
  }
  if(MotoL < -255){
    MotoL = -255;
  }
  if(MotoR < -255){
    MotoR = -255;
  }

  loop() {Control4WD(MotoL, MotoR); }
}
void Control4WD(int mLeft, int mRight){
  //  Serial.println("ML: "+String(mLeft)+", MR: "+String(mRight));
  bool directionL, directionR; // направление вращение для L298N
  byte valueL, valueR; // значение ШИМ M1, M2 (0-255)
  if(mLeft > 0){
    valueL = mLeft;
    directionL = 0;
  }
  else if(mLeft < 0){
    valueL = abs(mLeft);
    directionL = 1;
  }
  else{
    directionL = 0;
    valueL = 0;
  }

  if(mRight > 0){
    valueR = mRight;
    directionR = 0;
  }
  else if(mRight < 0){
    valueR = abs(mRight);
    directionR = 1;
  }
  else {
    directionR = 0;
    valueR = 0;
  }

  digitalWrite(in1, directionL); 
  digitalWrite(in2, !directionL); 
  digitalWrite(in3, directionR); 
  digitalWrite(in4, !directionR); 
  analogWrite(ena, valueL); 
  analogWrite(enb, valueR); 
}

 

vvadim
Offline
Зарегистрирован: 23.05.2012

блин, ну возьмите аглицкий переводчик и прочитайте что вам написал компилятор

щас прийдёт Клапауций и пошлёт вас в жопу

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

vvadim пишет:

щас прийдёт Клапауций и пошлёт вас в жопу

поздно - я уже пришёл.

ТС, иди... ну, ты понял. :D

ROVER-755
Offline
Зарегистрирован: 26.09.2016

vvadim пишет:

блин, ну возьмите аглицкий переводчик и прочитайте что вам написал компилятор

щас прийдёт Клапауций и пошлёт вас в жопу

Это первое ,что я сделал.

состояние выхода 1
ожидается ';' перед '{' маркер
 
А сюда обратился в последнюю очередь.
Спасибо за помощь.
 
А в жопу, пусть Клапауций сходит.
vvadim
Offline
Зарегистрирован: 23.05.2012

ну прекрасно что перевели

теперь разберитесь со скобками

а если какие то серьёзные проблемы тогда и на форуме можно вопрос задать

Araris
Offline
Зарегистрирован: 09.11.2012

ROVER-755 пишет:

Это первое ,что я сделал.

состояние выхода 1
ожидается ';' перед '{' маркер
 
 
Ожидается ';' ? Так поставьте точку с запятой после loop().
 
А после - задумайтесь, зачем Вы вызываете loop() из loop() ? Какой вообще смысл (предположим, что он там присутствует) несёт в себе строка 114 ?
ROVER-755
Offline
Зарегистрирован: 26.09.2016

Вроде разобрался.

Всем спасибо.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

UPD: Блин, сам в скобочках запутался... Строку 114 заменить на Control4WD(MotoL, MotoR);