Помогите разобраться с ошибкой
- Войдите на сайт для отправки комментариев
Вс, 20/10/2019 - 21:31
Добрый день.
Помогите разобраться с ошибкой, и по возможности предложите решение.
За ранние спасибо.
#include <Servo.h>
Servo leftPlane;
Servo leftUpright;
Servo rightPlane;
Servo rightUpright;
void setup() {
Serial.begin(9600);
leftPlane.attach(5);
leftUpright.attach(6);
rightPlane.attach(7);
rightUpright.attach(8);
}
void loop() {;
char cha[] = "left";
char chb[] = "right";
char chc[] = "up";
char chd[] = "down";
unsigned char a; //растояние до обекта относительно leftplane
for (;;) {
Serial.print(a);
delay(250); //4 раза/с
}
unsigned char sflp;
unsigned char sflu;
unsigned char sfrp;
unsigned char sfru;
String left;
String right;
int k;
int d;
int v;
if(Serial.available()){
int val = Serial.parseInt();
if(val[0] == 'l'){
if(val[1] == '0' ) {
d = val[2];
v = val[3];
left = b + v;
} else {
k = val[1];
d = val[2];
v = val[3];
left = k + d + v;
}
} else {
if(val[0] == 'r'){
if(val[1] == '0' ) {
d = val[2];
v = val[3];
right = b + v;
} else {
k = val[1];
d = val[2];
v = val[3];
right = k + d + v;
}
} else {
}
}
}
unsigned char flp;
unsigned char flu;
unsigned char frp;
unsigned char fru;
//логика
// 0,3 константа = растоянию между камерами
sflp = (180 - (0.3 / (2 * a)) * 2) / 2;
sflu = (180 - (0.3 / (2 * a)) * 2) / 2;
if(right = 0){
frp = sfrp;
} else {
frp = sfrp + right;
}
if(left = 0){
flp = sflp;
} else {
flp = sflp + left;
}
//управление
leftPlane.write(flp);
leftUpright.write(flu);
rightPlane.write(frp);
rightUpright.write(fru);
Код ошибки:
Arduino: 1.8.5 (Linux), Плата:"Arduino/Genuino Uno"
/home/medvedi/Рабочий стол/sketch_jul24a/sketch_jul24a.ino: In function 'void loop()':
sketch_jul24a:57: error: invalid types 'int[int]' for array subscript
if(val[0] == 'l'){
^
sketch_jul24a:58: error: invalid types 'int[int]' for array subscript
if(val[1] == '0' ) {
^
sketch_jul24a:59: error: invalid types 'int[int]' for array subscript
d = val[2];
^
sketch_jul24a:60: error: invalid types 'int[int]' for array subscript
v = val[3];
^
sketch_jul24a:62: error: 'b' was not declared in this scope
left = b + v;
^
sketch_jul24a:64: error: invalid types 'int[int]' for array subscript
k = val[1];
^
sketch_jul24a:65: error: invalid types 'int[int]' for array subscript
d = val[2];
^
sketch_jul24a:66: error: invalid types 'int[int]' for array subscript
v = val[3];
^
sketch_jul24a:70: error: invalid types 'int[int]' for array subscript
if(val[0] == 'r'){
^
sketch_jul24a:71: error: invalid types 'int[int]' for array subscript
if(val[1] == '0' ) {
^
sketch_jul24a:72: error: invalid types 'int[int]' for array subscript
d = val[2];
^
sketch_jul24a:73: error: invalid types 'int[int]' for array subscript
v = val[3];
^
sketch_jul24a:75: error: 'b' was not declared in this scope
right = b + v;
^
sketch_jul24a:77: error: invalid types 'int[int]' for array subscript
k = val[1];
^
sketch_jul24a:78: error: invalid types 'int[int]' for array subscript
d = val[2];
^
sketch_jul24a:79: error: invalid types 'int[int]' for array subscript
v = val[3];
^
sketch_jul24a:105: error: ambiguous overload for 'operator=' (operand types are 'String' and 'int')
if(right = 0){
^
/home/medvedi/Рабочий стол/sketch_jul24a/sketch_jul24a.ino:105:14: note: candidates are:
In file included from /snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/Arduino.h:231:0,
from sketch/sketch_jul24a.ino.cpp:1:
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:86:11: note: String& String::operator=(const String&)
String & operator = (const String &rhs);
^
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:87:11: note: String& String::operator=(const char*)
String & operator = (const char *cstr);
^
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:88:11: note: String& String::operator=(const __FlashStringHelper*)
String & operator = (const __FlashStringHelper *str);
^
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:90:11: note: String& String::operator=(String&&)
String & operator = (String &&rval);
^
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:91:11: note: String& String::operator=(StringSumHelper&&)
String & operator = (StringSumHelper &&rval);
^
sketch_jul24a:108: error: cannot convert 'StringSumHelper' to 'unsigned char' in assignment
frp = sfrp + right;
^
sketch_jul24a:111: error: ambiguous overload for 'operator=' (operand types are 'String' and 'int')
if(left = 0){
^
/home/medvedi/Рабочий стол/sketch_jul24a/sketch_jul24a.ino:111:13: note: candidates are:
In file included from /snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/Arduino.h:231:0,
from sketch/sketch_jul24a.ino.cpp:1:
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:86:11: note: String& String::operator=(const String&)
String & operator = (const String &rhs);
^
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:87:11: note: String& String::operator=(const char*)
String & operator = (const char *cstr);
^
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:88:11: note: String& String::operator=(const __FlashStringHelper*)
String & operator = (const __FlashStringHelper *str);
^
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:90:11: note: String& String::operator=(String&&)
String & operator = (String &&rval);
^
/snap/arduino-mhall119/5/hardware/arduino/avr/cores/arduino/WString.h:91:11: note: String& String::operator=(StringSumHelper&&)
String & operator = (StringSumHelper &&rval);
^
sketch_jul24a:114: error: cannot convert 'StringSumHelper' to 'unsigned char' in assignment
flp = sflp + left;
^
sketch_jul24a:133: error: expected primary-expression before 'int'
rightUpright.write(int
^
sketch_jul24a:133: error: expected '}' at end of input
exit status 1
invalid types 'int[int]' for array subscript
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Предлагаю решение: стереть этот бессмысленный треш с жесткого диска.
Вы с переменной val типа int пытаетесь работать как со строкой
если бы только это :) А как вам строчки 31-35? :)
Поддерживаю Садмана - эту программку нужно отправить прямиком в мусорную корзину
Помогите разобраться с ошибкой,
Переменная val описана в строке №54 как int, а используется как массив.
предложите решение.
Решение - изучить эту книгу (ну, хотя бы уж вот эту) и только потом программировать.
шыдэвр, в анналы:
030unsignedchara;//растояние до обекта относительно leftplane031032for(;;) {033Serial.print(a);034delay(250);//4 раза/с035}Раз в четвертьсекунды выводим "ХЗ чо" в Сериал и зацикливаемся на этом.
Ктонить, убейте вторую тему с таким же названием, я почему-то не могу.
Я тоже не могу, это одна и та же тема по факту.
тока она в заблуждение вводит, что на форуме есть новая тема. По факту нету, они обе ведут в одно и то же место, а формально - та, которая с 0 ответов светится как новая. :)
Ктонить, убейте вторую тему с таким же названием, я почему-то не могу.
Аналогичная фигня. Сервер таки скомпилировал код ТС? ))))
Надо к компаньеро Алехандру идти и челом бить
тока она в заблуждение вводит, что на форуме есть новая тема.
Я решил эту проблему, когда сказал в разделе "пометить все темы как прочитанные". Она перестала быть новой.
Странно, но у меня такое не прокатило. Хотя и никаких прав админских на форуме не имею. А самое главное - меня это и не напрягает )))
тока она в заблуждение вводит, что на форуме есть новая тема.
Я решил эту проблему, когда сказал в разделе "пометить все темы как прочитанные". Она перестала быть новой.
+1