Страница 1 из 1
Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 12:30:51
Ivanoff-iv
Есть ардуина 2560, понадобилось побыстрому сделать бегущую строку...
промаялся 3 часа - не работает! виснет при загрузке в железо и всё! кабеля менял, драйвера, среду разной версии... уже быстрее бы без ардуины бы сам всё сделал, но ведь на ардуине же всё проще!
причем скетчи из интернета грузятся и работают, а построенный на их основе свой - нет!
Секрет оказался прост -
Спойлер
в тексте прошивки была последовательность "!!!" - три восклицательных знака подряд, запихиваемых в строковую переменную, вот эта последовательность и вырубала загрузчик на ползагрузки...
как вам грабельки?

Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 12:37:33
electroget
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=4440448#p4440448"]как вам грабельки?

[/uquote]
Наверное это какая-то проблема с компилятором.
Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 13:59:05
Ivanoff-iv
В том то и дело, что компиляция проходила исправно а вот плата при загрузке пропадала...
попробуйте загрузить такое в ардуину...
Спойлер
Код: Выделить всё
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// send an intro:
Serial.println("send any byte and I'll tell you everything I can about it!!!");
}
void loop() {
}
сейчас попробовал - не вышло... хотя компилируется без ошибок
Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 14:27:51
veso74
Код работает совершенно нормально:
Если нет Serial, будет будет бесконечный цикл, ничего не делающий.
У меня на 9600 бода/с есть надпис: "send any byte and I'll tell you everything I can about it!!!"
! является отрицанием. 3 раза !!! -> трижды отрицание, а "!!" может быть использован как быстрое преобразование в bool (напр. сasting byte to bool):
Код: Выделить всё
uint8_t x = 8;
bool b;
...
b = !!x;
---
ответ: b = true.
или
Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 14:45:34
Ivanoff-iv
[uquote="veso74",url="/forum/viewtopic.php?p=4440504#p4440504"]! является отрицанием. 3 раза !!! -> трижды отрицание, а "!!" может быть использован как быстрое преобразование в bool (напр. сasting byte to bool):[/uquote] какое отрицание? в данном проекте это это часть текстовой строки...
у тебя работает, а у меня компилируется без ошибок, но в ардуину не лезет, даже прошлый проект не повредился...
но как только оставляю один или два восклицательных знака - всё сразу грузится!
ардуина у меня китайская M.Jduino mega 2560
Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 14:47:30
electroget
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=4440509#p4440509"]ардуина у меня китайская M.Jduino mega 2560[/uquote]
Ардуина вообще ни при чём. Код генерит компилятор.
Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 15:00:01
Ivanoff-iv
Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 15:36:47
Фунтик
В институте, на ВТИП'е, дали с напарником курсач - написать на Турбо Паскале (версию не помню) простенький текстовый редактор с плюшками типа форматирования и прочего... Большая часть пояснительной записки к коду программы начиналась со слов: "Опытным путём в работе компилятора были найдены ошибки:" и дальше пошло-поехало - "в 33 строчке нельзя использовать комментарии со словами "один", "три" и "пять"". В 55 строчке нельзя использовать комментарии на анг. языке, на русском - можно" и тому подобное. А это был первый год с ИБМ ПС персоналками в институте, неопытная преподша сначала не поверила. Обозвала неумёхами и решила показать как надо

Сама офигела, когда от наличия определённого комментария зависила удачность компиляции, и по пятёрочке с напарничком мы отхватили.
Так что, как говорил Мюллер - верить нельзя никому.
Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 16:21:32
veso74
Хм, странные дела. Здесь с "!!!" все в порядке.
---
Попробуйте "!!!" с английской клавиатуры, а не той, которую используете (напр. RU).
Просто предполагаю, нет причин, по которым с !!! не должно работать.
Re: Загрузка в борду "!!!"
Добавлено: Пн июл 03, 2023 18:51:08
BOB51
Возможно разные версии IDE и самой "платформы".
Одна из ранее обнаруженных ошибок касалась обязательного включения перед началом загрузки программы монитора последовательного порта (если в программе используется тот же порт, что и для загрузки).
На сегодня из версий IDE актуальны:
для ХР х32
1.8.9
Для 7 ки/десятки х64
1.8.19
и
2.1.0

Re: Загрузка в борду "!!!"
Добавлено: Чт июл 06, 2023 10:05:58
Ivanoff-iv
Пробовал на 2х компьютерах с 3мя разными версиями ИДЕ (но с одной и той-же платой) результат один = зависон.
Проблема уже не актуальна (умерив эмоциональность обошелся одним восклицательным знаком), пишу просто как предупреждение для ардуинщиков, вдруг кто ещё на эти грабли наступит. (проблема локализована - виноват загрузчик зашитый в плате.)
Re: Загрузка в борду "!!!"
Добавлено: Чт июл 06, 2023 11:03:45
veso74
Очевидно, что ваше устройство и загрузчик очень старые. Эта проблема была исправлена с новым загрузчиком, ответ в 2013-15 году.
https://github.com/arduino/Arduino/issues/3669
https://github.com/arduino/Arduino/issues/1594
Re: Загрузка в борду "!!!"
Добавлено: Чт июл 06, 2023 11:15:29
Ivanoff-iv
Да, платка куплена на алиэкспресс в далеком 2016 году...