Ужастик про IDE с опциями по умолчанию.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Уж сколько раз многие из нас устно и письменно, матом и без оного благодарили разработчиков 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'и отключены! Ребята, включайте - компилятор бы выручил!

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

ЕвгенийП пишет:

Молодцы разработчики - очень удобно сделали! Ну, блин, надо ж было такую какашку соорудить!

В этом ... IDE по умолчанию warning'и отключены!

в какой версии "этого"?

потому как в версии arduino-1.6.6 всё работает корректно.

*не знаю, насколько это хорошо или плохо и, тем более не знаю, нахрена новичку конструкция #define B1 2

MacSim
Offline
Зарегистрирован: 28.11.2012

Спасибо. Потестурую.

кодевиссионаве не используете?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

MacSim пишет:

кодевиссионаве не используете?

О да, ещё одна "забота" о новичках с автоматическим генератором кода... Галочки тыкать уже научились, а в сгенерённом коде потом разобраться не могут.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

IDE у меня 1.6.5, кстати, забыл сказать. 

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

ЕвгенийП пишет:

IDE у меня 1.6.5, кстати, забыл сказать. 

да, какая разница, если Дуино ИДЕ - гавно и всё там сделано неправильно.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

MacSim пишет:

кодевиссионаве не используете?

Боже упаси!

Причин несколько: 
1) платить 200 евро за то, что есть во вполне себе бесплатной Atmel студии, считаю неправильным;
2) Atmel студия (как и IDE) используют старый, хорошо себя зарекомендовавший компилятор С++. Пусть он и не без "особенностей", но зато по нему полно документации и все проблемы можно решить, а чего там наваяли румыны я не знаю.

Нет. Если мне нужно что-то простое по быстрому - беру сделанную "чайниками для чайников" IDE, если серьёзный проект - беру профессиональную среду - ATmel студию. Всё остальное - лесом.

Я делаю достаточно собственных ошибок в программах, чтобы ещё чужие собирать (как, например, та, что описана  в этом топике). Так что чем меньше сред с чужими ошибками, тем лучше.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

1.6.7   B1=2

1.7.8   B1=1
 

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

trembo пишет:

1.6.7   B1=2

1.7.8   B1=1
 

это ты ещё не проверял

#define millis sillim

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

trembo пишет:

1.6.7   B1=2

1.7.8   B1=1
 

Значит, в 1.7.8 также, как в моей 1.6.5

Проблема ведь здесь не в том, что благодаря их скрытым модификация кода переопределяется константа - это-то ещё Бог с ним. Проблема в том, что при IDE установленной по умолчанию это проихсходит молча, безо всяких предупреждений! Чтобы получать в таких случаях пердупреждения, надо залезть руками в файл preferences.txt и править опции там. Сколько-нибудь нормальная система программирования такого позволять не должна!

Проблема-то вылезла из реальной жизни. У внука две кнопки используются, вот он и обозвал пины для них B1 и B2 (типа, от слова Button). Собрал запустил, одна кнопка работает (B2), а B1 ни в какую. Пришёл ко мне - "дед, помогай". Ну, посидели с ним, посмотрели, вот и выловилась такая какашка.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

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.
 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

trembo пишет:

compiler.warning_level=default

В 1.6.5 если руками не править, стоит 

compiler.warning_level=none

Кстати, если поменять "none" на "all", то описанного Вами предупреждения про OneWire не вылазит.