Ужастик про IDE с опциями по умолчанию.
- Войдите на сайт для отправки комментариев
Уж сколько раз многие из нас устно и письменно, матом и без оного благодарили разработчиков IDE за их великую заботу о новичках - за то, что собирают все объявление функций в начало, и вставляют туда #include "arduino.h". Уж как мы им благодарны! Наверняка новичёк развалился бы на части от необходимости вставить #include "arduino.h"!
Зато как удобно теперь! например, если бедняга новичёк запустит вот такой скетч:
#define B1 2 void setup() { Serial.begin(115200); Serial.print("B1="); Serial.println(B1); } void loop() {}
И, посмотрев в монитор порта, обнаружит там:
B1=1
Он, наверное повесится прежде чем поймёт в чём проблема. Повесится и больше не будет докучать умным людям своими новичковыми вопросами.
Молодцы разработчики - очень удобно сделали! Ну, блин, надо ж было такую какашку соорудить!
В этом ... IDE по умолчанию warning'и отключены! Ребята, включайте - компилятор бы выручил!
Молодцы разработчики - очень удобно сделали! Ну, блин, надо ж было такую какашку соорудить!
В этом ... IDE по умолчанию warning'и отключены!
в какой версии "этого"?
потому как в версии arduino-1.6.6 всё работает корректно.
*не знаю, насколько это хорошо или плохо и, тем более не знаю, нахрена новичку конструкция #define B1 2
Спасибо. Потестурую.
кодевиссионаве не используете?
кодевиссионаве не используете?
О да, ещё одна "забота" о новичках с автоматическим генератором кода... Галочки тыкать уже научились, а в сгенерённом коде потом разобраться не могут.
IDE у меня 1.6.5, кстати, забыл сказать.
IDE у меня 1.6.5, кстати, забыл сказать.
да, какая разница, если Дуино ИДЕ - гавно и всё там сделано неправильно.
кодевиссионаве не используете?
Боже упаси!
Причин несколько:
1) платить 200 евро за то, что есть во вполне себе бесплатной Atmel студии, считаю неправильным;
2) Atmel студия (как и IDE) используют старый, хорошо себя зарекомендовавший компилятор С++. Пусть он и не без "особенностей", но зато по нему полно документации и все проблемы можно решить, а чего там наваяли румыны я не знаю.
Нет. Если мне нужно что-то простое по быстрому - беру сделанную "чайниками для чайников" IDE, если серьёзный проект - беру профессиональную среду - ATmel студию. Всё остальное - лесом.
Я делаю достаточно собственных ошибок в программах, чтобы ещё чужие собирать (как, например, та, что описана в этом топике). Так что чем меньше сред с чужими ошибками, тем лучше.
1.6.7 B1=2
1.7.8 B1=1
1.6.7 B1=2
1.7.8 B1=1
это ты ещё не проверял
#define millis sillim
1.6.7 B1=2
1.7.8 B1=1
Значит, в 1.7.8 также, как в моей 1.6.5
Проблема ведь здесь не в том, что благодаря их скрытым модификация кода переопределяется константа - это-то ещё Бог с ним. Проблема в том, что при IDE установленной по умолчанию это проихсходит молча, безо всяких предупреждений! Чтобы получать в таких случаях пердупреждения, надо залезть руками в файл preferences.txt и править опции там. Сколько-нибудь нормальная система программирования такого позволять не должна!
Проблема-то вылезла из реальной жизни. У внука две кнопки используются, вот он и обозвал пины для них B1 и B2 (типа, от слова Button). Собрал запустил, одна кнопка работает (B2), а B1 ни в какую. Пришёл ко мне - "дед, помогай". Ну, посидели с ним, посмотрели, вот и выловилась такая какашка.
compiler.warning_level=default
Кстати на пустой скетч ( как и на впрочем на любой) всегда вылазит варнинг
WARNING: Category '' in library OneWire is not valid. Setting to 'Uncategorized'
Sketch uses 450 bytes (1%) of program storage space. Maximum is 30,720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.
compiler.warning_level=default
В 1.6.5 если руками не править, стоит
compiler.warning_level=none
Кстати, если поменять "none" на "all", то описанного Вами предупреждения про OneWire не вылазит.