Создание модели электронного компонента для Proteus на Lua / Хабрахабр. Есть у меня несколько проектов- долгостроев, один из которых — создание компьютера на базе CDP1. Основную плату моделировал на бумаге и в Proteus. Да и как быть, если не знаешь С++ или нужно редактировать модель на лету для отладки? Да и если одному — ой как неудобно.
Проблема заключалась в том, что собранная под mingw. DLL вешала Proteus. Были перепробованы разные способы включая манипуляции с . Из удобств, кроме возможности сборки под линуксом «без отрыва от производства», возможность, в теории, писать модели хоть на фортране — было бы желание. Мимикрируем под С++.
Идея с «эмуляцией» виртуальных классов на практике выглядит так. Оригинальный С++ заголовок виртуального класса выглядит такclass IDSIMMODEL. Так как вызывать такое из структур не очень удобно, были написаны функции- обертки, какие- то вещи были автоматизированы, были добавлены отсутствующие, часто используемые функции. Даже в процессе написания этой статьи я добавил много нового, посмотрев на работу с другой стороны.«Сделай настолько просто, насколько это возможно, но не проще». В итоге код рос и все более нарастало ощущение, что нужно что- то менять: на создание модели уходило сил и времени не меньше, чем на написания такого же эмулятора для микроконтроллера. В процессе отладки моделей требовалось постоянно что- то менять, экспериментировать.
Приходилось пересобирать модель на каждой мелочи, да и работа с текстовыми данными в С оставляет желать лучшего. Знакомые, которым такое тоже было бы интересно, пугались С (кто- то использует Турбо. Паскаль, кто- то QBasic). Вспомнил о Lua: прекрасно интегрируется в С, быстр, компактен, нагляден, динамическая типизация — все что надо. В итоге продублировал все С функции в Lua с теми же названиями, получив полностью самодостаточный способ создания моделей, не требующий пересборки вообще.
Можно просто взять dll и описать любую модель только на Lua. Достаточно остановить симуляцию, подправить текстовый скрипт, и снова в бой. Моделирование в Lua. Основное тестирование велось в Proteus 7, но созданные с нуля и импортированные в 8- ю версию модели вели себя превосходно. Создадим несколько простейших моделей и на их примере посмотрим, что и как мы можем сделать. Я не буду описывать, как создать собственно графическую модель, это отлично описано тут и тут, поэтому остановлюсь именно на написании кода.
Здесь вы можете скачать модели и библиотеки компонентов, шаблоны и примеры проектов, утилиты для Proteus, а также статьи как с этого, так и с других сайтов. Библиотеки Proteus - Микроконтроллеры Скинте кто не будь библиотеки к Proteus. Не пользуюсь протеусом, но в. Устанавливаем библиотеки в Протеус и получаем набор из 6 устройств. На данном сайте часто в Протеусе и Фловкоде используются АТ90S2323.
Библиотеки Для Протеуса 8
- Для этого нам понадобиться ПО Proteus. Распаковываем библиотеку и берем от туда ARDUINO.IDX и.
- Библиотека Arduino для Proteus Isis (версия 7.8 скушала) Установка: файлы ARDUINO.LIB и скопировать в папку 'C.
Библиотеки Для Протеуса 7.7 Скачать

Вот 3 устройства, которые мы будем рассматривать. Я хотел сначала начать с мигания светодиодом, но потом решил, что это слишком уныло, надеюсь, не прогадал. В нашем случае, у всех моделей dll будет одна и та же, а вот скрипты — разные. Итак, создаем модель: Описание моделиdevice.

Главная » Файлы » Протеус » Библиотеки элементов. В категории материалов: 2 Показано материалов: 1-2.
На данном этапе библиотека поддерживает только цифровые устройства. Поддержка аналоговых и смешанных типов в процессе. Он должен точно соответствоват — привязка вывода внутри Proteus идет по имени. Два оставшихся поля говорят сами за себя — время переключения пина в пикосекундах. Необходимые функции, объявляемые пользователем.

На самом деле, нет строгой необходимости создавать что- то в скрипте. Можно вообще ничего не писать — будет модель пустышка, но для минимального функционала нужно создать функцию device. Эта функция будет вызываться, когда изменится состояние нод (проводников), например, изменится логический уровень. Для установки состояния вывода в один из уровней есть функция set. Для этого есть функция timer. Разница в задании времени из- за того, что set. Хотя разумеется, все то же самое можно сделать на С, а Lua использовать для прототипирования, благо названия функций идентичны.
Запускаем симуляцию и наблюдаем работу нашей модели. Возможности отладки. Основной целью было облегчение написания моделей и их отладки, поэтому рассмотрим некоторые возможности вывода полезной информации. Текстовые сообщения.
Для вывода бинарных данных в удобной форме есть memory. Если окно не создано — создадим его. И создадим окно debug типа, куда выведем нужны нам переменные и для масовки сдампим 3. Наконец, реализуем сам алгоритм работу ПЗУ, оставив без внимания OE, VPP и прочие CE выводыfunction device. Я взял модель двоичного счетчика 4.
Proteus 7 и сделал свой аналог. Тем ни менее, вполне терпимо за удобство работы. Да и вопросами оптимизации я даже не начинал заниматься.
Весь этот проект родился как спонтанная идея, и ещё много чего нужно сделать: Ближайшие планы. Пофиксить явные баги в коде. Максимально уменьшить возможность выстрелить себе в ногу. Документировать код под Doxygen. Возможно, перейти на lua. JITРеализовать аналоговые и смешанные типы устройств.
С плагин для IDAРазумеется, хотелось бы найти единомышленников, желающих помочь если и не участием в написании кода, то идеями и отзывами. Ведь сейчас многое захардкодено под цели и задачи, которые нужны были мне. Скачать без рекламы и смс.
Репозиторий с кодом.