Как увидеть текущее значение переменной в ARDUINO компьютером

Тема в разделе "Arduino & Shields", создана пользователем kolosvl, 18 янв 2015.

  1. kolosvl

    kolosvl Нуб

    Господа!
    Вопрос новичка. Есть ли возможность при отладке программулины в ARDUINO отслеживать текущее значение переменных микроконтроллера компьютером? После написания программы часто невозможно понять почему микроконтроллер не работает так как нужно. Про это в книжке Амперки к сожалению ничего не написано про такую отладку.... Раньше писал на Visual Basic. В случае чего запустил пошагово, посмотрел чему равны переменные на текущий момент, понял почему не работает... Должно же существовать чего-то подобное в ARDUINO !!!!
     
  2. Alex19

    Alex19 Гуру

    Насколько мне известно, возможность отладки в Arduino сильно ограничены.

    Способы отладки которые мне известны.
    1. Морганием светодиодами, к примеру встроенный светодиод на 13 ножке.
    2. Serial если он используется в проекте, а второго нет SoftwareSerial или NewSoftwareSerial.
    3. Внешние мониторы LCD и т.д.
    4. VisualMicro, сам хочу глянуть данный проект, пока хватает возможности предыдущих 3 пунктов.
    Он платный, хотя если он работает как написано, то цена в 29$ на мой взгляд вполне адекватна.

    Возможно есть другие решения, к примеру с программаторами AVR, но о них не знаю.
     
  3. kolosvl

    kolosvl Нуб

    Serial (SoftwareSerial или NewSoftwareSerial) что это такое?
     
  4. vvr

    vvr Инженерище

    А кто мешает натыкать сериалпринтов и в мониторе смотреть что творится.
     
  5. Alex19

    Alex19 Гуру

    Это программный Serial.

    Более подробнее о SoftwareSerial.
    Более подробнее о NewSoftwareSerial а так же тут.

    Вы можете просто подключив переходник USB - UART TTL на свободные ножки, тем самым получив дополнительный Serial.

    UPD.
    Так и делаю, но после общения с Visual Studio быстро привык к хорошему:).
     
    Последнее редактирование: 18 янв 2015
  6. kolosvl

    kolosvl Нуб

    C Serial Monitor разобрался.. Вполне разумная штука для отладки...
    Спасибо за информацию...
     
  7. Daniil

    Daniil Гуру

    Пока читал задался вопросом - почему никто не советует avr studio, бесплатная от фирмы Atmel? Там есть встроенный "маркет" где можно скачать gcc и писать код на си. Еще есть CodeVisionAvr, тут бесплатность граничит 4 кб программой. Но там удобно "готовить" мк или даже подглядеть шаблоны.
    Так в avr studio можно отлаживать программу как Вы это делали в Visual Basic.
     
  8. Unixon

    Unixon Оракул Модератор

    Ну почему же, советуем, когда человек перерастает ардуину и хочет большего. Code::Blocks тоже весьма удобен для написания кода и настройки опций проекта, хоть и не специализирован для микроконтроллеров.

    Это всё у вас и так уже есть в составе Arduino IDE.

    Не видел эту штуку в работе, поэтому не могу что-либо сказать относительно удобства, но Windows-only программа с ограничениями на размер кода это какая-то ересь имхо, особенно при при наличии лучших альтернатив.

    Для этого требуется либо debugWIRE либо JTAG, на ардуинах первое не будет работать из-за схемы, придется выпаивать некоторые детали, ну а второго просто нет в используемых AVR-ках.
     
  9. Daniil

    Daniil Гуру

    Да, но нет отладчика.
    Странно, думал примеров в интернете много, нашёл только такой. Там показывается как работает CodeVisionAvr. В защиту хочу сказать, что код, который эта программа готовит очень подробно задокументирован. Я начал изучение с разбора именно его кода)
    Я, как новичёк, искал то, что работает, а уже потом буду искать то, что будет работать ещё и на линуксе.
    В Avr Studio микроконтроллер эмулируется (его внутренняя работа). Поэтому в реальности сам МК не нужен во время проектирования и отладки.
     
  10. Megakoteyka

    Megakoteyka Оракул Модератор

    Не путайте симулятор с отладчиком. Как в симуляторе прочитать показания реального датчика? Никак.
     
  11. Daniil

    Daniil Гуру

    Вы правильно написали, что реального датчика показания никак не проверить, но вопрос не про реальные датчики, а про переменные МК.
     
  12. Megakoteyka

    Megakoteyka Оракул Модератор

    Ну если состояние переменной никак не зависит от внешних воздействий на девайс, то покатит и симулятор.
    Если хотите полноценную отладку - смотрите в сторону ARM. Отладочная плата stm32f...discovery более чем доступна, но при этом содержит в себе мощный контроллер с большой памятью и полноценный JTAG. Но программировать для нее посложнее будет, чем для ардуины.
    Для ардуины, как писали выше, самое то - отладочный вывод через последовательный порт.
     
    Alex19 нравится это.
  13. Daniil

    Daniil Гуру

    Пока порог вхождения в стм32 слишком крутой (когда пробовал надо было получить устройство здесь и сейчас). Я сейчас жгу тиньки(одну сжег моторчиком на 350 мА, а у второй динамик на низких частотах начал греться, потреблять неведомый ток и выжег одну ногу(что еще выжег - не знаю, остальное пока работает)), балуюсь с регистрами). У тинек нет uart, поэтому думаю о dso nano (203ий который)
     
  14. geher

    geher Гуру

    У тинек, по крайней мере некоторых (например, у 84-й), UART есть, причем аппаратный. Не уверен, что понял правильно, но там судя по описанию, там универсальный последовательный порт, который в зависимости от конфигурации может работать как Serial и SPI.
    Не знаю, аппаратная это реализация, или особенности дополнения для Arduino IDE, но аппаратный UART может работать в двух режимах, обычном (RX и TX) и отладочном (только TX).
    Да и SoftwareSerial никто не отменял. Дефицитную память, конечно, жрет, но, тем не менее, работает.

    dso nano - это реально измеряемый сигнал с частотой в сотни килогерц. И на тиньках часто можно только убедиться, что что-то "пробегает", но не увидеть сам сигнал.
    Хотя, если самому формировать отладочный сигнал на ноге тиньки, то может и сгодиться.
     
  15. Daniil

    Daniil Гуру

    Разве он не dso nano не до 72 МГц измеряет?
     
  16. geher

    geher Гуру

    Посмотрел, действительно, новый DSO Nano, который 203, посерьезнее получился. 4 канала, 30
    Это не предыдущие версии, по которым я судил.
    Пишут, правда, что реальных там всего 30 МГц, дальше искажения идут, но даже это уже существенно лучше, чем у старых.
     
  17. pastry777

    pastry777 Нуб

    Alex19,могли бы вы мне подсказать,как в Visual Studio сделать/включить подсветку пары скобок?как в Ардуино IDE....Не могу в студии работать без этого,а сначала так обрадовался...:( спасибо.
     
  18. Megakoteyka

    Megakoteyka Оракул Модератор

    В студии это работает по-умолчанию. Какой версией пользуетесь?
     
  19. pastry777

    pastry777 Нуб

    Visual Studio Community 2013+Visual Micro...ну я и предполагаю,что такая функция должна быть в комплекте настолько мощной программы,вот и думаю,может где в настройках выключено...
     
  20. Alex19

    Alex19 Гуру

    Речь идет об этом?
    [​IMG]
    Нет Visual Studio 2013 под рукой, но в 2010 и 2012, вроде настраивал. Так как по умолчанию, он считал файлы с расширением .ino и .pde как обычный тестовый файл и даже не делал подсветку кода.

    По умолчанию Visual Studio не понимает файлы с расширением .ino и .pde. Заходим в меню Сервис - Параметры, там выбираем Текстовый редактор - расширение файла. Добавляем .ino и .pde. указывая редактор Visual C++
    [​IMG]
    Нажимаем Ок, закрываем файл и снова открываем, теперь он будет делать подсветку скобок и будет воспринимать текст как C++.
    [​IMG]
    Возможно новая версия Visual Micro сама делает выше перечисленное, но около года тому пришлось сделать даже с установленным Visual Micro.