Было бы актуально сделать отладчик, хоть простенький
За отладчиком пожалуйте в Atmel Studio. Хочешь на реальном железе, хочешь на симуляторе. Точки останова, просмотр/изменение регистров, просмотр/изменение переменных, и т.д. Всё есть.
За отладчиком пожалуйте в Atmel Studio. Хочешь на реальном железе, хочешь на симуляторе. Точки останова, просмотр/изменение регистров, просмотр/изменение переменных, и т.д. Всё есть.
Установил VisualStudio с плагином Visual Micro пока устраивает. Точки останова, просмотр переменных, дальше пока не лазил.
А Atmel Studio я не смог завести. Год назад пробовал, почему не заработало не помню. VisualStudio с Visual Micro встал с пол пинка. пока доволен.
ЕвгенийП пишет:
Serial есть. Светодиоды зажигай сколько хочешь. Осциллограф опять же. Какой ещё отладчик Вам нужен?
При каждом изменении надо перезаливать скетч, чтобы посмотреть результат. Я не великий программер, это у меня так, хобби.... Мне с отладчиком удобнее, да и не надо везде по тексту программы Serial тягать.
Да я так про удобство. Просто если были бы закладки, возможность группировать код и сворачивать его и отладчик мне большего то от Arduino IDE и не надо.
Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет. Тем более, что любой отладчик сам по себе так или иначе вмешивается в работу программы и с ним она работает не так, как без него. Особенно это касается недерминированных программ, с которыми мы в основном и имеем дело в любом микроконтроллере.
А возможность сворачивания кода ... ну, не знаю, как там в 1.6.8, а у меня в 1.6.5 - сколько угодно.
Установил 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 не пробовал правда.
Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет.
Всё же отладчик (железный или хотя бы симулятор ядра и основной переферии) иногда сильно облегчает жизнь. Напрмиер, когда ты не можешь найти свою ошибку в коде или алгоритме. Очень помогает заглянуть "в недра" микроконтроллера и посмотреть, что там присходит.
Я конечно не профессионал, но ведь для этого есть Debug и Release. В Debug версии прошивки отладчик вмешивается, да. А в Release ведь не должен?
При чём тут версия?
Давайте пример.Вот Вы подключили отладчик, назначили точку останова. Любуетесь на переменные свои, потом давите "прдолжить". За то время, что Вы любовались, успел прийти какой-нибудь сигнал (или там ещё что-то случиться) и благодаря этому у Вас всё нормально сработало.
Теперь Вы убрали отладчик (т.е. убрали задержку на "любование") и в результате получилось, что у Вас программа выполняется без задержки и тот самый сигнал вовремя прийти не успевает.
Вот и имеем - с отладчиком всё работало нормально. Стоит убрать отладчик - всё повалилось.
И таких ситуаций возникает вагон и маленькая тележка постоянно.
Даже печать в сериал - какая-никакая, но задержка и может получиться так, что с печатью в сериал всё работает классно (благодаря как раз задержке), а стоит убрать печать - всё валистя, т.к. какой-то сигнал вовремя не приходит, а для программы это критично.
Я сначала не правильно Вас понял, теперь ясно. Да, конечно же надо учитывать такие особенности и пользоваться с осторожностью. Я лишь судил со своей колокольни "новичка-любителя". Мне отладчик понадобился в процессе подробного изучения МК и вникания в тонкости функционирования "внутренностей" МК (там ты буквально видишь, как переключаются биты). Возможно "профи" в этой индустрии не пользуются отладчиками.
P.S. Что интересно, у меня пока не возникало таких ситуаций. Бывало наоборот: без отладчика не работало так как надо, с отладчиком получалось найти ошибку и исправить.
Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет. Тем более, что любой отладчик сам по себе так или иначе вмешивается в работу программы и с ним она работает не так, как без него. Особенно это касается недерминированных программ, с которыми мы в основном и имеем дело в любом микроконтроллере.
А возможность сворачивания кода ... ну, не знаю, как там в 1.6.8, а у меня в 1.6.5 - сколько угодно.
Ну у меня не помещается он в голову :-) (отладчик)
Я и пользуюсь активно Serial, пользуюсь отладчиком только когда не понимаю как отработает алгоритм, потому как не силен во всех этих сдвигах битов и условиях И ИЛИ, и мне надо пошагово вывести все изменения и подумать что и где я сделал не так. Мне в отладчике пошагово делать это удобно.
Иногда для отладки некоторых ситуаций использую сервис 123d.circuits.io В принципе удобно, отладить отработку условий, и расчет всякой там "математики" производить можно.
Я так понимаю еслиб я 7 дней в неделю програмил по 8 часов, и делал бы это 10 лет, то отладчик был бы в голове и все И ИЛИ ЕСЛИ ИНАЧЕ знал бы наизусть хоть ночью разбуди.
А так любой удобный инструмент для меня это большой плюс. Потому как повседневные заботы и работа вытесняют из головы отладчик :-(
Насчет сворачивания я имел в виду такую конструкцию
То что в Arduino IDE можно сворачивать функции это понятно, но у меня например есть модуль работы с освещением, я его отладил, он работает хорошо. В модуле несколько функций, и очень удобно свернуть весь его код чтобы нечаянно не повредить.
Я понимаю что может мало это кому надо, но еще раз повторюсь мне удобно.
Ну и еще бы закладки. Очень удобная штука.
Хотя все вышеперечисленное сейчас у меня есть в VisualStudio. И еще много в нем есть с чем не разбирался из за нехватки времени.
Я плагин Visual Micro почти не юзал. На AtmelStudio 6 поставил, посмотрел и снёс. Но вроде работал. На последнюю Atmel Studio 7 не пробовал правда.
Я так понимаю плагин нужен студии как раз для того чтобы подружить ее с Arduino и реализовать возможность отладки.
Для работы портами или пинами тоже есть какието инструменты, включал, но не разбирался досканально что и как работает.
Для AtmelStudio Visual Micro видимо не нужен если там уже все под микроконтроллеры заточено. Хотя может я и не прав.
Грубо говоря, 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) это всё облегачет.
То что в Arduino IDE можно сворачивать функции это понятно, но у меня например есть модуль работы с освещением, я его отладил, он работает хорошо. В модуле несколько функций, и очень удобно свернуть весь его код чтобы нечаянно не повредить.
Вчера опробовал это версию среды. Вывалилось море warning, полез копаться и обнаружил что изменен порядок обработки исходника "преобразователем" перед компиляцией .. и внезапно, тепеь #include "Arduino.h" втыкается первой строкой в скетч .. за что и получаю кучу предупреждений про переименование предопределенных констант.
Да и похоже интерфейс I2C (TWI) тут тоже "пооптимизирован" да так, что асинхронные обращения больше недоступны. А в целом, улучшения среди библиотек не нашел. Разница компиляции моих примеров и Wiring каковой была таковой и осталась.. особых изменений не обнаружено.
Было бы актуально сделать отладчик, хоть простенький
За отладчиком пожалуйте в Atmel Studio. Хочешь на реальном железе, хочешь на симуляторе. Точки останова, просмотр/изменение регистров, просмотр/изменение переменных, и т.д. Всё есть.
Было бы актуально сделать отладчик
Serial есть. Светодиоды зажигай сколько хочешь. Осциллограф опять же. Какой ещё отладчик Вам нужен?
За отладчиком пожалуйте в Atmel Studio. Хочешь на реальном железе, хочешь на симуляторе. Точки останова, просмотр/изменение регистров, просмотр/изменение переменных, и т.д. Всё есть.
Установил VisualStudio с плагином Visual Micro пока устраивает. Точки останова, просмотр переменных, дальше пока не лазил.
А Atmel Studio я не смог завести. Год назад пробовал, почему не заработало не помню. VisualStudio с Visual Micro встал с пол пинка. пока доволен.
Serial есть. Светодиоды зажигай сколько хочешь. Осциллограф опять же. Какой ещё отладчик Вам нужен?
При каждом изменении надо перезаливать скетч, чтобы посмотреть результат. Я не великий программер, это у меня так, хобби.... Мне с отладчиком удобнее, да и не надо везде по тексту программы Serial тягать.
Да я так про удобство. Просто если были бы закладки, возможность группировать код и сворачивать его и отладчик мне большего то от Arduino IDE и не надо.
Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет. Тем более, что любой отладчик сам по себе так или иначе вмешивается в работу программы и с ним она работает не так, как без него. Особенно это касается недерминированных программ, с которыми мы в основном и имеем дело в любом микроконтроллере.
А возможность сворачивания кода ... ну, не знаю, как там в 1.6.8, а у меня в 1.6.5 - сколько угодно.
Сворачивание кода есть в ардуино иде. Покопайте настройки. Тамже настроил отображение номера строки.
Установил VisualStudio с плагином Visual Micro пока устраивает. Точки останова, просмотр переменных, дальше пока не лазил.
Atmel Studio это таже Visual Studio, только немного допиленная Atmel специально под свои микроконтроллеры. От Visual Studio не сильно отличается. Но есть специфичные фичи типа окна I/O View, в котором наглядно показано состояние битов всех регистров и переферии. И которые с лёгкостью можно менять всего лишь клацнув мышкой. Мне эта возможность сильно помогла, когда разбирался с таймерами.
А Atmel Studio я не смог завести. Год назад пробовал, почему не заработало не помню. VisualStudio с Visual Micro встал с пол пинка. пока доволен.
Я плагин Visual Micro почти не юзал. На AtmelStudio 6 поставил, посмотрел и снёс. Но вроде работал. На последнюю Atmel Studio 7 не пробовал правда.
Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет.
Всё же отладчик (железный или хотя бы симулятор ядра и основной переферии) иногда сильно облегчает жизнь. Напрмиер, когда ты не можешь найти свою ошибку в коде или алгоритме. Очень помогает заглянуть "в недра" микроконтроллера и посмотреть, что там присходит.
Я конечно не профессионал, но ведь для этого есть Debug и Release. В Debug версии прошивки отладчик вмешивается, да. А в Release ведь не должен?
При чём тут версия?
Давайте пример.Вот Вы подключили отладчик, назначили точку останова. Любуетесь на переменные свои, потом давите "прдолжить". За то время, что Вы любовались, успел прийти какой-нибудь сигнал (или там ещё что-то случиться) и благодаря этому у Вас всё нормально сработало.
Теперь Вы убрали отладчик (т.е. убрали задержку на "любование") и в результате получилось, что у Вас программа выполняется без задержки и тот самый сигнал вовремя прийти не успевает.
Вот и имеем - с отладчиком всё работало нормально. Стоит убрать отладчик - всё повалилось.
И таких ситуаций возникает вагон и маленькая тележка постоянно.
Даже печать в сериал - какая-никакая, но задержка и может получиться так, что с печатью в сериал всё работает классно (благодаря как раз задержке), а стоит убрать печать - всё валистя, т.к. какой-то сигнал вовремя не приходит, а для программы это критично.
Пример понятен?
При чём тут версия?
.....
Пример понятен?
Я сначала не правильно Вас понял, теперь ясно. Да, конечно же надо учитывать такие особенности и пользоваться с осторожностью. Я лишь судил со своей колокольни "новичка-любителя". Мне отладчик понадобился в процессе подробного изучения МК и вникания в тонкости функционирования "внутренностей" МК (там ты буквально видишь, как переключаются биты). Возможно "профи" в этой индустрии не пользуются отладчиками.
P.S. Что интересно, у меня пока не возникало таких ситуаций. Бывало наоборот: без отладчика не работало так как надо, с отладчиком получалось найти ошибку и исправить.
Андрей, отладчик в основном живёт в голове. Если Вам недостаточно того, что я перечислил, то и остальное не поможет. Тем более, что любой отладчик сам по себе так или иначе вмешивается в работу программы и с ним она работает не так, как без него. Особенно это касается недерминированных программ, с которыми мы в основном и имеем дело в любом микроконтроллере.
А возможность сворачивания кода ... ну, не знаю, как там в 1.6.8, а у меня в 1.6.5 - сколько угодно.
Ну у меня не помещается он в голову :-) (отладчик)
Я и пользуюсь активно Serial, пользуюсь отладчиком только когда не понимаю как отработает алгоритм, потому как не силен во всех этих сдвигах битов и условиях И ИЛИ, и мне надо пошагово вывести все изменения и подумать что и где я сделал не так. Мне в отладчике пошагово делать это удобно.
Иногда для отладки некоторых ситуаций использую сервис 123d.circuits.io
В принципе удобно, отладить отработку условий, и расчет всякой там "математики" производить можно.
Я так понимаю еслиб я 7 дней в неделю програмил по 8 часов, и делал бы это 10 лет, то отладчик был бы в голове и все И ИЛИ ЕСЛИ ИНАЧЕ знал бы наизусть хоть ночью разбуди.
А так любой удобный инструмент для меня это большой плюс. Потому как повседневные заботы и работа вытесняют из головы отладчик :-(
Насчет сворачивания я имел в виду такую конструкцию
То что в Arduino IDE можно сворачивать функции это понятно, но у меня например есть модуль работы с освещением, я его отладил, он работает хорошо. В модуле несколько функций, и очень удобно свернуть весь его код чтобы нечаянно не повредить.
Я понимаю что может мало это кому надо, но еще раз повторюсь мне удобно.
Ну и еще бы закладки. Очень удобная штука.
Хотя все вышеперечисленное сейчас у меня есть в VisualStudio. И еще много в нем есть с чем не разбирался из за нехватки времени.
Я плагин Visual Micro почти не юзал. На AtmelStudio 6 поставил, посмотрел и снёс. Но вроде работал. На последнюю Atmel Studio 7 не пробовал правда.
Я так понимаю плагин нужен студии как раз для того чтобы подружить ее с Arduino и реализовать возможность отладки.
Для работы портами или пинами тоже есть какието инструменты, включал, но не разбирался досканально что и как работает.
Для AtmelStudio Visual Micro видимо не нужен если там уже все под микроконтроллеры заточено. Хотя может я и не прав.
Грубо говоря, 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) это всё облегачет.
Jeka_M Понял, спасибо.
То что в Arduino IDE можно сворачивать функции это понятно, но у меня например есть модуль работы с освещением, я его отладил, он работает хорошо. В модуле несколько функций, и очень удобно свернуть весь его код чтобы нечаянно не повредить.
Так, вынесите в отдельный файл, делов-то.
Вчера опробовал это версию среды. Вывалилось море warning, полез копаться и обнаружил что изменен порядок обработки исходника "преобразователем" перед компиляцией .. и внезапно, тепеь #include "Arduino.h" втыкается первой строкой в скетч .. за что и получаю кучу предупреждений про переименование предопределенных констант.
Да и похоже интерфейс I2C (TWI) тут тоже "пооптимизирован" да так, что асинхронные обращения больше недоступны. А в целом, улучшения среди библиотек не нашел. Разница компиляции моих примеров и Wiring каковой была таковой и осталась.. особых изменений не обнаружено.
P.S. Как было оно блокнотом, так и осталось.
Кто пробовал?
Тут небольшой обзор.
Прочитал про новые плюшки тут, но ничего интересного не обнаружил.
Было бы актуально сделать отладчик, хоть простенький, и возможность создание регионов для сворачивания блоков кода.
про регионы:
гораздо удобнее выносить блоки в отдельные файлы, тогда они в отделных закладках... выглядит это так: