Помогите разобраться с ошибкой
- Войдите на сайт для отправки комментариев
Вс, 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, а используется как массив.
предложите решение.
Решение - изучить эту книгу (ну, хотя бы уж вот эту) и только потом программировать.
шыдэвр, в анналы:
030
unsigned
char
a;
//растояние до обекта относительно leftplane
031
032
for
(;;) {
033
Serial
.print(a);
034
delay(250);
//4 раза/с
035
}
Раз в четвертьсекунды выводим "ХЗ чо" в Сериал и зацикливаемся на этом.
Ктонить, убейте вторую тему с таким же названием, я почему-то не могу.
Я тоже не могу, это одна и та же тема по факту.
тока она в заблуждение вводит, что на форуме есть новая тема. По факту нету, они обе ведут в одно и то же место, а формально - та, которая с 0 ответов светится как новая. :)
Ктонить, убейте вторую тему с таким же названием, я почему-то не могу.
Аналогичная фигня. Сервер таки скомпилировал код ТС? ))))
Надо к компаньеро Алехандру идти и челом бить
тока она в заблуждение вводит, что на форуме есть новая тема.
Я решил эту проблему, когда сказал в разделе "пометить все темы как прочитанные". Она перестала быть новой.
Странно, но у меня такое не прокатило. Хотя и никаких прав админских на форуме не имею. А самое главное - меня это и не напрягает )))
тока она в заблуждение вводит, что на форуме есть новая тема.
Я решил эту проблему, когда сказал в разделе "пометить все темы как прочитанные". Она перестала быть новой.
+1