ARDUINO 1.6.8

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Кто пробовал?

Тут небольшой обзор.

Прочитал про новые плюшки тут, но ничего интересного не обнаружил.

Было бы актуально сделать отладчик, хоть простенький, и возможность создание регионов для сворачивания блоков кода.

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

Andrey12 пишет:

Было бы актуально сделать отладчик, хоть простенький

За отладчиком пожалуйте в Atmel Studio. Хочешь на реальном железе, хочешь на симуляторе. Точки останова, просмотр/изменение регистров, просмотр/изменение переменных, и т.д. Всё есть.

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

Andrey12 пишет:

Было бы актуально сделать отладчик

Serial есть. Светодиоды зажигай сколько хочешь. Осциллограф опять же. Какой ещё отладчик Вам нужен?

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Jeka_M пишет:

За отладчиком пожалуйте в Atmel Studio. Хочешь на реальном железе, хочешь на симуляторе. Точки останова, просмотр/изменение регистров, просмотр/изменение переменных, и т.д. Всё есть.

Установил VisualStudio с плагином Visual Micro пока устраивает. Точки останова, просмотр переменных, дальше пока не лазил.
А 
Atmel Studio я не смог завести. Год назад пробовал, почему не заработало не помню. VisualStudio с Visual Micro встал с пол пинка. пока доволен.

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

Serial есть. Светодиоды зажигай сколько хочешь. Осциллограф опять же. Какой ещё отладчик Вам нужен?

При каждом изменении надо перезаливать скетч, чтобы посмотреть результат. Я не великий программер, это у меня так, хобби.... Мне с отладчиком удобнее, да и не надо везде по тексту программы Serial  тягать.

Да я так про удобство. Просто если были бы закладки, возможность группировать код и сворачивать его и отладчик мне большего то от Arduino IDE  и не надо.

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

Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет. Тем более, что любой отладчик сам по себе так или иначе вмешивается в работу программы и с ним она работает не так, как без него. Особенно это касается недерминированных программ, с которыми мы в основном и имеем дело в любом микроконтроллере.

А возможность сворачивания кода ... ну, не знаю, как там в 1.6.8, а у меня в 1.6.5 - сколько угодно.

nevkon
Offline
Зарегистрирован: 20.01.2015

Сворачивание кода есть в ардуино иде. Покопайте настройки. Тамже настроил отображение номера строки.

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

Andrey12 пишет:

Установил VisualStudio с плагином Visual Micro пока устраивает. Точки останова, просмотр переменных, дальше пока не лазил.

Atmel Studio это таже Visual Studio, только немного допиленная Atmel специально под свои микроконтроллеры. От Visual Studio не сильно отличается. Но есть специфичные фичи типа окна I/O View, в котором наглядно показано состояние битов всех регистров и переферии. И которые с лёгкостью можно менять всего лишь клацнув мышкой. Мне эта возможность сильно помогла, когда разбирался с таймерами.

Andrey12 пишет:

А Atmel Studio я не смог завести. Год назад пробовал, почему не заработало не помню. VisualStudio с Visual Micro встал с пол пинка. пока доволен.

Я плагин Visual Micro почти не юзал. На AtmelStudio 6 поставил, посмотрел и снёс. Но вроде работал. На последнюю Atmel Studio 7 не пробовал правда.

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

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

Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет.

Всё же отладчик (железный или хотя бы симулятор ядра и основной переферии) иногда сильно облегчает жизнь. Напрмиер, когда ты не можешь найти свою ошибку в коде или алгоритме. Очень помогает заглянуть "в недра" микроконтроллера и посмотреть, что там присходит.

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

Jeka_M пишет:

Я конечно не профессионал, но ведь для этого есть Debug и Release. В Debug версии прошивки отладчик вмешивается, да. А в Release ведь не должен?

При чём тут версия?

Давайте пример.Вот Вы подключили отладчик, назначили точку останова. Любуетесь на переменные свои, потом давите "прдолжить". За то время, что Вы любовались, успел прийти какой-нибудь сигнал (или там ещё что-то случиться)  и благодаря этому у Вас всё нормально сработало.

Теперь Вы убрали отладчик (т.е. убрали задержку на "любование") и в результате получилось, что у Вас программа выполняется без задержки и тот самый сигнал вовремя прийти не успевает.

Вот и имеем - с отладчиком всё работало нормально. Стоит убрать отладчик - всё повалилось.

И таких ситуаций возникает вагон и маленькая тележка постоянно.

Даже печать в сериал - какая-никакая, но задержка и может получиться так, что с печатью в сериал всё работает классно (благодаря как раз задержке), а стоит убрать печать - всё валистя, т.к. какой-то сигнал вовремя не приходит, а для программы это критично.

Пример понятен?

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

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

При чём тут версия?

.....

Пример понятен?

Я сначала не правильно Вас понял, теперь ясно. Да, конечно же надо учитывать такие особенности и пользоваться с осторожностью. Я лишь судил со своей колокольни "новичка-любителя". Мне отладчик понадобился в процессе подробного изучения МК и вникания в тонкости функционирования "внутренностей" МК (там ты буквально видишь, как переключаются биты). Возможно "профи" в этой индустрии не пользуются отладчиками. 

P.S. Что интересно, у меня пока не возникало таких ситуаций. Бывало наоборот: без отладчика не работало так как надо, с отладчиком получалось найти ошибку и исправить.

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

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

Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет. Тем более, что любой отладчик сам по себе так или иначе вмешивается в работу программы и с ним она работает не так, как без него. Особенно это касается недерминированных программ, с которыми мы в основном и имеем дело в любом микроконтроллере.

А возможность сворачивания кода ... ну, не знаю, как там в 1.6.8, а у меня в 1.6.5 - сколько угодно.

Ну у меня не помещается он в голову :-) (отладчик)
Я и пользуюсь активно Serial, пользуюсь отладчиком только когда не понимаю как отработает алгоритм, потому как не силен во всех этих сдвигах битов и условиях И ИЛИ, и мне надо пошагово вывести все изменения и подумать что и где я сделал не так. Мне в отладчике пошагово делать это удобно. 

Иногда для отладки некоторых ситуаций использую сервис 123d.circuits.io
В принципе удобно, отладить отработку условий, и расчет всякой там "математики" производить можно.

 

Я так понимаю еслиб я 7 дней в неделю програмил по 8 часов, и делал бы это 10 лет, то отладчик был бы в голове и все И ИЛИ  ЕСЛИ ИНАЧЕ знал бы наизусть хоть ночью разбуди.

А так любой удобный инструмент для меня это большой плюс. Потому как повседневные заботы и работа вытесняют из головы отладчик :-(

Насчет сворачивания я имел в виду такую конструкцию

#pragma region RegionName
void Test() {}
void Test2() {}
void Test3() {}
#pragma endregion RegionName

То что в Arduino IDE можно сворачивать функции это понятно, но у меня например есть модуль работы с освещением, я его отладил, он работает хорошо. В модуле несколько функций, и очень удобно свернуть весь его код чтобы нечаянно не повредить. 
Я понимаю что может мало это кому надо, но еще раз повторюсь мне удобно.

Ну и еще бы закладки. Очень удобная штука. 

Хотя все вышеперечисленное сейчас у меня есть в VisualStudio. И еще много в нем есть с чем не разбирался из за нехватки времени.

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Jeka_M пишет:

Я плагин Visual Micro почти не юзал. На AtmelStudio 6 поставил, посмотрел и снёс. Но вроде работал. На последнюю Atmel Studio 7 не пробовал правда.

Я так понимаю плагин нужен студии как раз для того чтобы подружить ее с Arduino и реализовать возможность отладки.
Для работы портами или пинами тоже есть какието инструменты, включал, но не разбирался досканально что и как работает.

Для AtmelStudio Visual Micro видимо не нужен если там уже все под микроконтроллеры заточено. Хотя может я и не прав.

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

Грубо говоря, Visual Micro нужен, чтобы работали "ардуиновские" void setup(), void loop(), digitalWrite(),  digitalRead(), analogWrite(), analogRead(), pinMode(), Serial.begin() и прочие ништяки. Упрощенное обращение к пинам по нумерации D0-D13, A0-A5. Без этого плагина в Atmel Studio мы работаем не с "Ардуино", а с голым МК AVR:  int main(), работа с портами и пинами через регистры DDR, PORT, PIN. Ручная настройка переферии через регистры (те же таймеры, ШИМ (analogWrite), АЦП (analogRead), UART (Serial) и т.д.). Порог вхождения сложнее, чем в "ардуино". Ардуино (как и плагин VisualMicro для Visual Studio/Atmel Studio) это всё облегачет.

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Jeka_M Понял, спасибо.

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

Andrey12 пишет:

То что в Arduino IDE можно сворачивать функции это понятно, но у меня например есть модуль работы с освещением, я его отладил, он работает хорошо. В модуле несколько функций, и очень удобно свернуть весь его код чтобы нечаянно не повредить. 

Так, вынесите в отдельный файл, делов-то. 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Вчера опробовал это версию среды. Вывалилось море warning, полез копаться и обнаружил что изменен порядок обработки исходника "преобразователем" перед компиляцией .. и внезапно, тепеь #include "Arduino.h" втыкается первой строкой в скетч .. за что и получаю кучу предупреждений про переименование предопределенных констант.

Да и похоже интерфейс I2C (TWI) тут тоже "пооптимизирован" да так, что асинхронные обращения больше недоступны. А в целом, улучшения среди библиотек не нашел. Разница компиляции моих примеров и Wiring каковой была таковой и осталась.. особых изменений не обнаружено.

P.S. Как было оно блокнотом, так и осталось.

vde69
Offline
Зарегистрирован: 10.01.2016

Andrey12 пишет:

Кто пробовал?

Тут небольшой обзор.

Прочитал про новые плюшки тут, но ничего интересного не обнаружил.

Было бы актуально сделать отладчик, хоть простенький, и возможность создание регионов для сворачивания блоков кода.

 

про регионы:

гораздо удобнее выносить блоки в отдельные файлы,  тогда они в отделных закладках... выглядит это так: