Ошибки в скетчи.
- Войдите на сайт для отправки комментариев
Сб, 14/05/2016 - 20:06
Здравствуйте, у меня вот такой скетч:
long duration,cm; void setup() { pinMode (10,OUTPUT);//на реле pinMode (11, OUTPUT);// триг pinMode (12, INPUT); //эхо Serial.begin (9600); } void loop() { duration = pulseIn (12,HIGH); cm = duration/29/2; if (cm<20){ digitalWrite(10, HIGH); } //если менее 10см - выключаем else if (cm<=150) // Если расстояние менее 150 сантиметров { digitalWrite(10, LOW); // Включаем светодиод delay(500000); //задержка на выключение } else { digitalWrite(10, HIGH); // иначе выключаем } } else { digitalWrite(10, HIGH); // включаем LOW } Serial.print(cm); Serial.print("CM"); Serial.println (); delay(100); // делает замер каждые -- сек }
При компиляции скетча вылетет такая ошибка:
Arduino: 1.6.0 (Windows 8), Плата"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
HC-SR04.ino:44:1: error: stray '\' in program
HC-SR04.ino:34:1: error: expected unqualified-id before 'else'
HC-SR04.ino:38:1: error: 'Serial' does not name a type
HC-SR04.ino:39:1: error: 'Serial' does not name a type
HC-SR04.ino:40:1: error: 'Serial' does not name a type
HC-SR04.ino:42:6: error: expected constructor, destructor, or type conversion before '(' token
HC-SR04.ino:44:1: error: expected declaration before '}' token
Ошибка компиляции.
This report would have more information with
"Отображать вывод во время компиляции"
enabled in File > Preferences.
Подскажите пожалуйста что здесь не так. В програмировании я новичёк:)
Не судите строго.
Версия ардуины 1.6.0
Ну, как минимум, количество открывающих фигурных скобок (6 шт.) не соответсвует количеству закрывающих (7 шт., лишняя в строке 32). И два раза подряд else (строки 28, 34), перед каждым else должен быть свой if.
все ошибки он вам и написал, даже со ссылками на строки, только чаще всего ошибки не в них, просто затык происходит у компилятора именно на этом месте.
операторы иф, елсе сами надеюсь поправите, не хочу ковыряться с вашими проверками. используйте их правильно и будет работать. а вообще заведите себе шаманский бубен програмиста, он помогает :-) с его помощью входите в транс и проникайте внутрь программы. и все...
http://arduino.ru/Reference/Else приведенные пример 2 гумно - новичку быстрее запутаться, чем разобраться
операторы после иф и елсе возмите за правило писать в { } я обычно делаю отступы
Странно, скетч показан что вкружен, но ардуино и датчик не хотят работать.
У меня вот ещё один вопрос. на этом видио https://www.youtube.com/watch?v=GVXQKYpCsNw объясняется как устронить основную проблему этого датчик HC-SR04. Но я не могу понять куда он этот доп. код нужно вставить( Пожалуйста, могли бы вы мне помочь. Вот этот код, который на видео:
duration = pulseIn(echoPin, HIGH);
if (duration == 0) {
Serial.println("Reload ultrasonic, fix bug SR04");
ВОТ СКЕТЧ:
const int Trig = 8;
операторы после иф и елсе возмите за правило писать в { } я обычно делаю отступы
Я конечно извеняюсь, но Вы используете плохой стиль оформления кода. Советовать его новичкам - категорически не стоит.
"Открывающую скобку часто оставляют на одной строке с заголовком (оператора, подпрограммы, структуры и т. п.), при этом она может оказаться сколь угодно далеко справа, но закрывающая скобка при этом обязана находиться в той же колонке, где начался заголовок."
понятнее намного будет писать так
а если вложенный, то
так понятно, что и где закрывается, и помогает от того, что все компилится, а работает не так
Прссститте! А можно уточнить? Очень важный для меня момент - по 10 минут по утрам трачу: вот с какого конца яйцо-в-смятку нужно разбивать? Вроде с тупого положено? Я где-то читал, что учить новичков разбивать с острого конца - это путь в АДДДД! Это так?
Скажите, почему этот скетч не фурычит???
форматирование кода не по феншую
ребята помогите пожалуйста. вот код
при попытке компиляции выходят такие ошибки
kod:7: error: found ':' in nested-name-specifier, expected '::'
kod:7: error: 'http' does not name a type
H:\проекты_arduino\робот тележка\инет робот\2 вариант\kod\kod.ino: In function 'void loop()':
kod:31: error: 'LedStep' was not declared in this scope
kod:36: error: 'LedStep' was not declared in this scope
kod:41: error: 'LedStep' was not declared in this scope
exit status 1
found ':' in nested-name-specifier, expected '::'
что это за ошибки? код рабочий так как делал по статье
Убери ссылку из 7 строки. Если копипастишь откуда-то код - будь внимательнее.
форматирование кода не по феншую
Всмысле?? Можно по подробнее.
Дядя шутить изволит ,убери ссылку и объяви переменную
вот твоя 7 и 8 строка
Здравствуйте, у меня вот такой скетч:
При компиляции скетча вылетет такая ошибка:
Это всё я исправил, скетч в ардуину вгрузился, но сама она и датчик не работают.
Тоесть на выходах ничего нету.
выложи исправленный
После void loop() {
у вас не хватает этих трёх строчек:
digitalWrite(11, LOW);
delayMicroseconds(2);
digitalWrite(11, HIGH);
выложи исправленный
Вот:
Люди добрые, сорри, если злой офф-топ, но... всё ж это краем-то со скетчем связано :)
Старые файлы проектов *.ino открываются пустыми (сейчас ide v. 1.6.5). Хотя я с тех пор их не менял. Да и если на размер их посмотреть - они разного размера. И от пустого файла проекта отличаются. Как из них код вытащить? Качать и ставить старые версии IDE? А может какой редактор хитрый есть (а то нотпад тоже пустоту показывает :(( )
Спасибо!
Люди добрые, сорри, если злой офф-топ, но... всё ж это краем-то со скетчем связано :)
Старые файлы проектов *.ino открываются пустыми (сейчас ide v. 1.6.5). Хотя я с тех пор их не менял. Да и если на размер их посмотреть - они разного размера. И от пустого файла проекта отличаются. Как из них код вытащить? Качать и ставить старые версии IDE? А может какой редактор хитрый есть (а то нотпад тоже пустоту показывает :(( )
Спасибо!
ну, да - что ты намутил с правами доступа, только тебе самому известно... или антивирус с дурной головы установил.
Та не, на права бы он ругался. И на другой машине тоже были бы "вопросы" от системы. А ИДЕ просто открывает файл. Но открывает - пустым. А размер в килобайтах есть. То есть там есть что-то. Но как его открыть?.... Вот я и подумал, может кто с такой же проблеммой сталкивался уже и решение нашел.
UPD: в просмотрщике Командера, в двоичном и шестнадцатиричном режимах показывает, что файлы забиты нолями :((( Печаль. Как так вышло........ Нолями, и файлы разных размером.... Мистика.
Та не, на права бы он ругался. И на другой машине тоже были бы "вопросы" от системы. А ИДЕ просто открывает файл. Но открывает - пустым. А размер в килобайтах есть. То есть там есть что-то. Но как его открыть?.... Вот я и подумал, может кто с такой же проблеммой сталкивался уже и решение нашел.
ну, что за бред?
ясно же что что-то не даёт софту доступ к содержимому файла - тебе кажется, что файл пустой, т.к. запускается текстовый редактор, который ничего не читает.
*скопируй на флешку и открой на другом компе.
Ну пусть я нуб, ладно.
Вот, попробуй: http:// rusfolder.c om/45018519
Может у тебя не нолями забитый файл откроется :(
Ну пусть я нуб, ладно.
Вот, попробуй: http:// rusfolder.c om/45018519
Может у тебя не нолями забитый файл откроется :(
да нули - не знаю, как можно такое сотворить.
Вооот..... вынипарериишь! просто сохранил в своё время проекты и оставил так до лучших времен. ХЗ, что это. Тот, что прислал - в мае прошлого года делался. Чудеса в IDE. :))
Чудеса в IDE. :))
при чём здесь ИДЕ?
выложи исправленный
Вот:
ребята не пойму прикола. вот код
нажимаю 1 раз компилить выходят вот эти ошибки-
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp:199:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
eeprom_write_byte((uint8_t*)addr+2, (data & 0xFF0000) >> 16);
^
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp:200:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
eeprom_write_byte((uint8_t*)addr+3, (data & 0xFF000000) >> 24);
^
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp: In function 'uint8_t ReadEEPROM_Byte(uint8_t)':
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp:209:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
return eeprom_read_byte((uint8_t*)addr);
^
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp: In function 'uint32_t ReadEEPROM_Long(uint8_t)':
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp:220:55: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
uint32_t ir_code = eeprom_read_byte((uint8_t*)addr+3);
^
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp:221:63: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
ir_code = (ir_code << 8) | eeprom_read_byte((uint8_t*)addr+2);
^
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp:222:63: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
ir_code = (ir_code << 8) | eeprom_read_byte((uint8_t*)addr+1);
^
C:\Program Files (x86)\Arduino_new\libraries\cyberlib\CyberLib.cpp:223:63: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
ir_code = (ir_code << 8) | eeprom_read_byte((uint8_t*)addr);
потом нажимаю компилить ЕЩЕ РАЗ и они уже пропадают и норм компилится!
что за чудеса???
после этой строчки он у тебя не будет делать вообще ничего, попробуй с миллис. примеры на форуме есть
с чем попробовать?
и что значит если при компиляции пишет exit status 1 expected unqualified-id before 'if'???
с чем попробовать?
millis()
http://arduino.ru/tutorials/BlinkWithoutDelay
http://robocraft.ru/blog/arduino/385.html
и что значит если при компиляции пишет exit status 1 expected unqualified-id before 'if'???
Приведите скетч и полностью ошибку с номером строки.
вот полный скетч
фото не получается вставить. вот ошибки-
Дык это не ошибки, а варнинги - нехорошо, конечно, но не смертельно.
Ребята помогите пожалуйста исправить ошибку в скетче
помогите вот скетч
в строке N не хватает ;
У него и с фигурными скобками там мешанина...