Лично мне, в очень не хватает отладчика – с этим обязательно нужно что-нибудь сделать :)
Но ведь уже существуют пакеты для разработки электронных устройств от схемы до печатной платы.
Например, замечательная программа – :
— PROTEUS может симулировать несколько МК в одном устройстве (AVR, PIC, Motorola, ARM)
— в поставку PROTEUS входит очень много моделей компонентов.
— можно симулировать любые электронные устройства и не содержащие МК
Т.о. если нужно проверить какую-нибудь идею или вариант реализации – можно не искать детали, а просто «собрать» схему в PROTEUS-е и посмотреть как она будет работать :)
Симуляция PROTEUS-а очень реалистична — наглядно видна работа устройства,
напряжения и токи в нем.
Причём PROTEUS — это полная система проектирования — от идеи — до результатов работы устройства и файлов для платы.
Как всегда – об этой системе можно .
Итак, попробуем смоделировать Arduino :)
представлен на рисунке выше :)
Да – никаких источников питания и стабилизаторов – просто микроконтроллер и светодиод, который подключён к 19 ножке МК, она же 5-й вывод порта B – она же, согласно – digital pin 13 :)
Можно чуть усложнить схему, подключив виртуальный терминал:
— теперь мы сможем видеть данные, которые наша виртуальная ардуина шлёт в последовательный порт :)
Если на компоненте дважды щёлкнуть левой кнопкой мышки, то появится окошко, в котором можно установить различные параметры.
Например, для микроконтроллера:
Чтобы загрузить в микроконтроллер программу – через поле “Program File” –указываем путь к .hex-файлу.
Укажем МК частоту 16MHz и загрузим стандартный .
Запускаем симуляцию и видим, как меняется напряжение на светодиоде:
Для наглядности – можно в библиотеке компонентов выбрать светодиод с анимацией:
Теперь можно проверить работу других обучающих скетчей.
Например, :
— добавляем нужные элементы, загружаем в виртуальный МК .hex со скетчем и вуаля:
Кнопка не нажата:
Нажмём кнопку – и виртуальный светодиод загорается :)
Посмотрим – как работает виртуальный терминал; загрузим в МК
Работает! Сообщения терминала отображаются в маленьком окошке :)
А осциллограф? Грузим в МК скетч :)
Хм… какой-то мусор… ааа я забыл изменить скорость COM-порта!
Дважды щёлкаем на терминале и устанавливаем скорость (Baud Rate) в 38400
Теперь всё работает!
Только симуляция не учитывает наводки, которые были в реальной схеме – поэтому тут одни нули :)
Теперь можно запускать свои скетчи вдали от Arduino, используя всю мощь симуляции PROTEUS-а (от виртуальных инструментов до отладки)!
Напротив, нули появляются именно когда скорости совпадают. При разных скоростях сыпятся какие-то символы. Вы не могли бы скинуть мне ваш проект под протеус и скетч под ардуино? плиз.
у меня протеус старый — там только atmega8 — для неё просто выставлял тактовую частоту в 16МГц.
Для 328-й, по идее, должно быть так же.
Вечером выложу пример для 8-й меги.
Спасибо, конечно, но у меня Linux :)
И да я все-таки нашел где это в линуксе, IDE создает папку вида /tmp/buildXXXXXXXXXXXXXXXXXXX.tmp
в ней можно и поискать.
Хм… а как из ArduinoIDE 0018 получить asm файл в папке \local settings\temp\… или еще где? Она же создает только hex и elf файл, а для заливки программы в протеус нужен asm. Ради эксперимента переменовал hex и elf в asm, но, как я и предполагал, оно не заработало. Где достать asm?
Да asm не нужен скорей всего. Кстати, вам сопственно зачем?
Если просто проверить — то скармить протеусу можно и hex и rom.
Если с отладкой — то к hex-у нужно ещё .cof приложить, его компилятор генерирует(естественно компилятор нужно соотвествующим образом настроить)
Мне, собственно, чтобы компилить файлы в ArduinoIDE и заливать их в Proteus. Прошивка то есть — хочу файлы проверять, хотя бы тот же блинк. Но у ардуиноиде же нет настроек компилятора, а под atmega168 больше у меня ничего не умеет компилить. Причем надо именно с прошивкой ардуины для атмеги, но не с любой другой, т.к мне кажется проекты из под ардуины работают только с ней
Ничего не путаете, я ж картинку зачем рисовал-старался в предыдущем каменте, там тоже красным кружком обведён именно hex. И довольно подробно разрисованно как туда добратся ;)
Ну так и заливайте hex-ы=)
А компилятор ручками настраивается, не через ИДЕ.
Ошибаетесь, есть у вас компилятор=) Внимательно почитайте статью. Там всё написано, и где в папке ардуиныИДЕ компилятор живёт, и как его настроить.
Правда чтоб генерить разные файлы, (cof, вчастности) придётся изучить ещё и статью.
Но это всй нужно только для отладки, для ваших целей хватит и hex-а.
Вот нашел эмулятор ардуино не нужно хекс генерить, работает напрямую со скетч кодом. До протеуса ему конечно еще далеко, но в нём уже есть приличная библиотека элементов.
В терминале Proteus всегда sensorValue пишет = 1023, analogWrite(5, sensorValue)поднимает PD5(11-ю ногу)на HIGH(т.е. 5V)
На схеме ATMEGA328P, переменный резистор 1К, диод и терминал.
Подскажите где загвоздка? Это Proteus гонит или я? :-)
Комментарии (35)
RSS свернуть / развернутьmatlaber
noonv
matlaber
matlaber
Для 328-й, по идее, должно быть так же.
Вечером выложу пример для 8-й меги.
noonv
matlaber
Тоже, кстати не сразу разобрался=)
Итак настройки для Atmega328 в Proteus 7.6 такие… барабанная дробь:
Удачи=)
Zoltberg
Vass
aspire89
в версии IDE 0017 можно было настроить чтобы hex-файлы появлялись в каталоге скетча, но в последней 0018 — почему то это добиться не удалось
noonv
И да я все-таки нашел где это в линуксе, IDE создает папку вида /tmp/buildXXXXXXXXXXXXXXXXXXX.tmp
в ней можно и поискать.
Vass
AlexMelyon
admin
AlexMelyon
admin
AlexMelyon
AlexMelyon
Если просто проверить — то скармить протеусу можно и hex и rom.
Если с отладкой — то к hex-у нужно ещё .cof приложить, его компилятор генерирует(естественно компилятор нужно соотвествующим образом настроить)
ещё можно почитать
Zoltberg
AlexMelyon
AlexMelyon
Zoltberg
А компилятор ручками настраивается, не через ИДЕ.
Ошибаетесь, есть у вас компилятор=) Внимательно почитайте статью. Там всё написано, и где в папке ардуиныИДЕ компилятор живёт, и как его настроить.
Правда чтоб генерить разные файлы, (cof, вчастности) придётся изучить ещё и статью.
Но это всй нужно только для отладки, для ваших целей хватит и hex-а.
Zoltberg
AlexMelyon
AlexMelyon
svyaz
conysSM
conysSM
MAFia
К примеру
В терминале Proteus всегда sensorValue пишет = 1023, analogWrite(5, sensorValue)поднимает PD5(11-ю ногу)на HIGH(т.е. 5V)
На схеме ATMEGA328P, переменный резистор 1К, диод и терминал.
Подскажите где загвоздка? Это Proteus гонит или я? :-)
sabeshkin
Zoltberg
sabeshkin
sabeshkin
sabeshkin
Аналоговые пины тоже могут использоваться как цифровые, номера с 14 по 19.
Zoltberg
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.