![]() ![]() Proteus Professional — пакет программ для автоматизированного проектирования электронных схем. Пакет представляет собой . ![]() Microwave Proteus 3. G 1. 3 GHz. Каталог наименований РЭСОбращаем ваше внимание на то, что в данном разделе представлена исключительно справочная информация и Телеком. Консалтинг не занимается поставками оборудования для радиосвязи. I. Наземная радиосвязь. ФИКСИРОВАННАЯ СЛУЖБА (ФС)1. Руссификатор нашел и норм работает, а если ли к ней библиотеки на русском языке??![]() Создание модели электронного компонента для Proteus на Lua / Хабрахабр. Есть у меня несколько проектов- долгостроев, один из которых — создание компьютера на базе CDP1. Основную плату моделировал на бумаге и в Proteus. Да и как быть, если не знаешь С++ или нужно редактировать модель на лету для отладки? Да и если одному — ой как неудобно. Проблема заключалась в том, что собранная под mingw. DLL вешала Proteus. Были перепробованы разные способы включая манипуляции с . Из удобств, кроме возможности сборки под линуксом «без отрыва от производства», возможность, в теории, писать модели хоть на фортране — было бы желание. Мимикрируем под С++. Идея с «эмуляцией» виртуальных классов на практике выглядит так. Оригинальный С++ заголовок виртуального класса выглядит такclass IDSIMMODEL. Так как вызывать такое из структур не очень удобно, были написаны функции- обертки, какие- то вещи были автоматизированы, были добавлены отсутствующие, часто используемые функции. Даже в процессе написания этой статьи я добавил много нового, посмотрев на работу с другой стороны.«Сделай настолько просто, насколько это возможно, но не проще». В итоге код рос и все более нарастало ощущение, что нужно что- то менять: на создание модели уходило сил и времени не меньше, чем на написания такого же эмулятора для микроконтроллера. В процессе отладки моделей требовалось постоянно что- то менять, экспериментировать. Приходилось пересобирать модель на каждой мелочи, да и работа с текстовыми данными в С оставляет желать лучшего. Знакомые, которым такое тоже было бы интересно, пугались С (кто- то использует Турбо. Паскаль, кто- то QBasic). Вспомнил о Lua: прекрасно интегрируется в С, быстр, компактен, нагляден, динамическая типизация — все что надо. В итоге продублировал все С функции в Lua с теми же названиями, получив полностью самодостаточный способ создания моделей, не требующий пересборки вообще. Можно просто взять dll и описать любую модель только на Lua. Достаточно остановить симуляцию, подправить текстовый скрипт, и снова в бой. Моделирование в Lua.
Основное тестирование велось в Proteus 7, но созданные с нуля и импортированные в 8- ю версию модели вели себя превосходно. Создадим несколько простейших моделей и на их примере посмотрим, что и как мы можем сделать. Я не буду описывать, как создать собственно графическую модель, это отлично описано тут и тут, поэтому остановлюсь именно на написании кода. Вот 3 устройства, которые мы будем рассматривать. Я хотел сначала начать с мигания светодиодом, но потом решил, что это слишком уныло, надеюсь, не прогадал. В нашем случае, у всех моделей dll будет одна и та же, а вот скрипты — разные. Итак, создаем модель: Описание моделиdevice. На данном этапе библиотека поддерживает только цифровые устройства. Поддержка аналоговых и смешанных типов в процессе. Он должен точно соответствоват — привязка вывода внутри Proteus идет по имени. Два оставшихся поля говорят сами за себя — время переключения пина в пикосекундах. Необходимые функции, объявляемые пользователем. На самом деле, нет строгой необходимости создавать что- то в скрипте. Можно вообще ничего не писать — будет модель пустышка, но для минимального функционала нужно создать функцию device. Эта функция будет вызываться, когда изменится состояние нод (проводников), например, изменится логический уровень. Для установки состояния вывода в один из уровней есть функция set. Для этого есть функция timer. Разница в задании времени из- за того, что set. Хотя разумеется, все то же самое можно сделать на С, а Lua использовать для прототипирования, благо названия функций идентичны. Запускаем симуляцию и наблюдаем работу нашей модели. Возможности отладки. Основной целью было облегчение написания моделей и их отладки, поэтому рассмотрим некоторые возможности вывода полезной информации. Текстовые сообщения. Для вывода бинарных данных в удобной форме есть memory. Если окно не создано — создадим его. И создадим окно debug типа, куда выведем нужны нам переменные и для масовки сдампим 3. Наконец, реализуем сам алгоритм работу ПЗУ, оставив без внимания OE, VPP и прочие CE выводыfunction device. Я взял модель двоичного счетчика 4. Proteus 7 и сделал свой аналог. Тем ни менее, вполне терпимо за удобство работы. Да и вопросами оптимизации я даже не начинал заниматься. Весь этот проект родился как спонтанная идея, и ещё много чего нужно сделать: Ближайшие планы. Пофиксить явные баги в коде. Максимально уменьшить возможность выстрелить себе в ногу. Документировать код под Doxygen. Возможно, перейти на lua. JITРеализовать аналоговые и смешанные типы устройств. С плагин для IDAРазумеется, хотелось бы найти единомышленников, желающих помочь если и не участием в написании кода, то идеями и отзывами. Ведь сейчас многое захардкодено под цели и задачи, которые нужны были мне. Скачать без рекламы и смс. Репозиторий с кодом.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2016
Categories |