SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
fifan
Devil
Posts: 900
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by fifan »

arcachofo wrote:Попробуйте использовать прикрепленный файл.
Спасибо, работает.
User avatar
FizikS
Maniac
Posts: 251
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Ранее (viewtopic.php?f=81&t=19727&p=159983&hil ... or#p159824) я выкладывал схему для визуального редактирования знакогенераторов для семисегментного индикатора. Выяснилось, что в новых версиях программы эта схема не работает. Причина неработоспособности в том, что в программе полностью переписан движок симуляции логических микросхем. Добавилось несколько важных возможностей (настраиваемая задержка сигналов, настраиваемые фронты и срезы сигналов, изменилась модель RAM/ROM и др.). В результате некоторые схемы перестали правильно симулироваться.
Выкладываю исправленный вариант для новых версий. Тестировалась схема в версии Trunk. Изменения состоят в том, что пришлось добавлять задержки сигналов для правильного функционирования схемы.
В этой схеме добавлен переключатель, блокирующий случайное стирание информации. После окончания работы со схемой, перед отключением симуляции нужно его включить. В противном случае обнуляется нулевой байт из ROM.
Есть один непонятный косяк: при старте симуляции индикатор светится в половину яркости. После первого изменения (записи) любого сегмента нормальная индикация восстанавливается.

Кстати, не обязательно нажимать кнопки мышкой. Можно нажимать одноименные кнопки на клавиатуре. Результат одинаков.
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 251
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

От нечего делать решил сделать "бегущую строку" на семисегментных индикаторах...
Получилось прикольно. Единственный недостаток - текст плохо читается (иногда).
Для подготовки текста подойдет схема в посте выше. С начального адреса ПЗУ записывается 8 нулевых байт, затем изображения символов, формирующие текст для индикатора. В конце текста вставляем еще 8 нулевых байт и "Стоп-байт" 0FFh.
Вроде все. Если что-либо непонятно, поясню.
Во вложении 2 варианта шрифтов для семисегментного индикатора.
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Shaos »

Не - всё таки 7-сегментов недостаточно чтобы весь алфавит показать - надо 16
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
FizikS
Maniac
Posts: 251
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Я помню на АОН-ах часто писали текстовые сообщения. Индикатор там был 7 сегментный.
Знаменитые "error", "3rror" на калькуляторах Б3-34, МК-61 и т.д., всяческие математические примеры на калькуляторах, которые выводили слова на перевернутом калькуляторе...
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 251
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Вышло обновление тестовой сборки программы SimulIDE 1.0.0 Rev 1348:
https://simulide.forumotion.com/t390-si ... ter-builds

Список изменений:
Changes from Rev 1334:

Bugs fixed:
- PIC16F630: package error.
- DS1307: Initialization error with current time.
- HD44780: Custom character missing Row 7.
- MCus: Compatibility with latest package file format.
- MCUs: crash calling sleep.
- PICs: Comparator error using Vref.
- PICs: OcUnit "Only interrupt" should not control pin.
- PICs: Errors in xml files PIR1 register mask.
- 7segment BCD: error mapping Component name.
- PICs: Crash at IcUnit Null register.
- 8051: Status flags errors..
User avatar
FizikS
Maniac
Posts: 251
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Отрисовал очередную модельку. Получилось хорошо.
Шестнадцатеричный декодер с защелкой на входе: TIL311.
Планирую еще сделать несколько подобных, поэтому самое место им в категории Display.
Установка:
Распаковать архив в каталог "..\data\led_display\", в файл "led_display.xml" добавить строку:

Code: Select all

  <item name="TIL311" info="Hexadecimal display wich logic" /> 
You do not have the required permissions to view the files attached to this post.
Mondx
Doomed
Posts: 468
Joined: 10 Aug 2022 07:27

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Mondx »

FizikS, обычно весовые разряды располагают справа-налево. Т.е. старшие слева, младшие справа. Но это так, чисто для удобовосприятия.)
User avatar
Lavr
Supreme God
Posts: 16637
Joined: 21 Oct 2009 08:08
Location: Россия

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Lavr »

FizikS wrote:От нечего делать решил сделать "бегущую строку" на семисегментных индикаторах...
Получилось прикольно. Единственный недостаток - текст плохо читается (иногда).
А Вы там не забываете про фишку, характерную в значительной мере для систем САПР?
Перед сменой символа на индикаторе его следует вначале погасить.
В реальных устройствах это не столь принципиально, а вот во всяких эмуляторах этот трюк
весьма неплохо улучшает изображение.
iLavr
User avatar
FizikS
Maniac
Posts: 251
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Вышло очередное обновление Trunk версии программы SimulIDE-R1859: https://simulide.forumotion.com/t550-si ... ter-builds
Традиционно: пофиксены баги, добавлены фичи...

 Список изменений
Bug Fixes:
- Crash copy/paste subcircuit with several MainComps.
- CPU Watcher: Var. List not saved.
- MCUs: error loading files with uppercase extension.
- PICs: errors in comparators.
- SPI Module: error in Slave mode.
- PIC SPI: error setting mode.
- IoPin: fix getVoltage() when Pin is not connected.
- Attinyx5: PCINT xml file error.
- 8051: several errors (royqh1979).
- Mcu Monitor: wrong cell in Flash after pause (by royqh1979).
- LEDs: fix colors.
- Fix Label positions after flipped (by royqh1979).
- Reactive: autostep is unstable.

Changes:
- Simulator: several speed optimizations.
- Added Display & ScriptDisplay modules.
- Added SriptTwi.
- Optimize Script engine.
- ScriptModule: Compile msgs to Editor msg Panel.
- IoPort: Added programmed pulse train.
- Added Atmega64.
- Arduino Compiler: add custom Libraries Path.
- Added Simplified Chinese translation (royqh1979).
- Added Slovak translation (tomas714).
- PICs: sleep module basic implementation.
- Editor: implemented config file.
- Save/Load context menu for MemTable (royqh1979).
- SDCC compiler several improvements (by royqh1979).
- Undo/Redo refactored & Copy by drag (by royqh1979).


Last edited by arcachofo on Tue Sep 05, 2023 3:01 am; edited 38 times in total

Появились новые компоненты:
- Atmega64,
- настраиваемая модель динамической памяти Dinamic RAM,
- для поклонников ZX-Spectrum добавлена модель ULA ZX48K (на выбор несколько вариантов из списка). Модель имеет экран, на который выводится картинка. Проектом компьютера еще никто не поделился. Автор ULA показал скриншот своего проекта Спектрума во время тестирования модели: https://simulide.forumotion.com/t1594-zx-spectrum
You do not have the required permissions to view the files attached to this post.
forthuser
Senior
Posts: 165
Joined: 12 Jan 2023 07:26

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by forthuser »

FizikS wrote:Вышло очередное обновление Trunk версии программы SimulIDE-R1859:
Проверил собираемость проекта под Linux32 Puppy. из транка 1863
При сборке проявилась такая ошибка у меня на файле label.cpp

 

Code: Select all

src/gui/circuitwidget/label.cpp:55:31: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
             m_labely = y + fm.horizontalAdvance( text );
                               ^
src/gui/circuitwidget/label.cpp:58:31: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
             m_labely = y + fm.horizontalAdvance( text );
                               ^
src/gui/circuitwidget/label.cpp:69:31: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
             m_labely = y - fm.horizontalAdvance( text );
                               ^
src/gui/circuitwidget/label.cpp:72:31: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
             m_labely = y - fm.horizontalAdvance( text );
                               ^
src/gui/circuitwidget/label.cpp:81:34: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
         m_labelx = hf<0 ? x - fm.horizontalAdvance( text ) : x ;
                                  ^
src/gui/circuitwidget/label.cpp: In member function ‘void Label::updtLabelPos()’:
src/gui/circuitwidget/label.cpp:148:33: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
             setY( m_labely - fm.horizontalAdvance( text ) );
                                 ^
src/gui/circuitwidget/label.cpp:151:33: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
             setY( m_labely - fm.horizontalAdvance( text ) );
                                 ^
src/gui/circuitwidget/label.cpp:162:33: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
             setY( m_labely + fm.horizontalAdvance( text ) );
                                 ^
src/gui/circuitwidget/label.cpp:165:33: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
             setY( m_labely + fm.horizontalAdvance( text ) );
                                 ^
src/gui/circuitwidget/label.cpp:174:36: error: ‘class QFontMetrics’ has no member named ‘horizontalAdvance’
         setX( hf<0 ? m_labelx + fm.horizontalAdvance( text ) : m_labelx );
                                    ^
At global scope:
cc1plus: warning: unrecognized command line option "-Wno-deprecated-copy" [enabled by default]
cc1plus: warning: unrecognized command line option "-Wno-cast-function-type" [enabled by default]
cc1plus: warning: unrecognized command line option "-Wno-implicit-fallthrough" [enabled by default]
make: *** [build/objects/label.o] Error 1

Эти места закоментировал.

Дальше особых сообщений не было, но файл SimulIDE не появился после успешной сборки
т.к. компилятор не нашёл директорию /executables/SimulIDE_ и поэтому команду финанальной компоновки подправил для создания файла simulide в текущей директории.

P.S. Убрал из Мakefile ещё не поддержиаемую у меня опцию -no-pie.
ещё в файле dispinbox символ isnan не оказался в нужном пространстве имён (проявился при сборке на GCC 5.4 - указал std:: , но на GCC 4.8 всё нормально и файл созданный simulide рабочий на проверке симуляции схемы).
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Shaos »

У тебя старый Qt по видимому

Попробовал у себя в дебияне:

Code: Select all

> bzr branch lp:simulide
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
Branched 1866 revisions.
> cd simulide/build_XX
> qmake
Project MESSAGE: -----------------------------------
Project MESSAGE:     
Project MESSAGE:     SimulIDE_ for Linux
Project MESSAGE:     
Project MESSAGE:     Date:      "06-09-23"
Project MESSAGE:     Qt version: 5.11.3
Project MESSAGE:     
Project MESSAGE:     Destination Folder:
Project MESSAGE: /home/shaos/src/OTHER/SimulIDE/simulide/build_XX/executables/SimulIDE_
Project MESSAGE: -----------------------------------
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_cz.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_de.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_en.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_es.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_fr.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_it.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_nl.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_pt_BR.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_pt_PT.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_ru.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_tr.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_zh_CN.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/simulide_sk.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_cz.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_de.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_en.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_es.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_fr.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_it.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_nl.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_pt_BR.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_pt_PT.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_ru.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_tr.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_zh_CN.qm'
RCC: Error in '../src/application.qrc': Cannot find file '../resources/qm/qt_sk.qm'
и там таки действительно пусто:
https://bazaar.launchpad.net/~arcachofo/simulide/trunk/files/head:/resources/qm
а в марте там чего-то было - скопировал вручную и стало меньше ругаться и далее:

Code: Select all

> make
...
In file included from ../src/gui/dialogs/appdialog.h:8,
                 from ../src/gui/circuitwidget/circuitwidget.cpp:17:
./ui_appdialog.h: In member function ‘void Ui_AppDialog::setupUi(QDialog*)’:
./ui_appdialog.h:407:54: error: ‘PlaceholderText’ is not a member of ‘QPalette’
         palette.setBrush(QPalette::Active, QPalette::PlaceholderText, brush);
                                                      ^~~~~~~~~~~~~~~
./ui_appdialog.h:411:56: error: ‘PlaceholderText’ is not a member of ‘QPalette’
         palette.setBrush(QPalette::Inactive, QPalette::PlaceholderText, brush);
                                                        ^~~~~~~~~~~~~~~
./ui_appdialog.h:415:56: error: ‘PlaceholderText’ is not a member of ‘QPalette’
         palette.setBrush(QPalette::Disabled, QPalette::PlaceholderText, brush);
                                                        ^~~~~~~~~~~~~~~
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-copy’
make: *** [Makefile:4554: build/objects/circuitwidget.o] Error 1
Это несовместимость Qt - несколько страниц назад решалось пересохранением проблемных форм в моей версии Qt-дизайнера (который у меня сейчас 5.11.3+dfsg1-1+deb10u5)
Я тут за главного - если что шлите мыло на me собака shaos точка net
forthuser
Senior
Posts: 165
Joined: 12 Jan 2023 07:26

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by forthuser »

Shaos wrote:У тебя старый Qt по видимому
Да, не совсем ещё QT5.9.9 :)
но, правда не установленный, а запускаемый простым копированием бинарных файлов в /usr/lib/qt4/bin (из основного пакета чтобы не прописывать переменную пути или не указывать при запуске), а пакеты куда инсталируются которые прописаны в зависимостях
Попробовал у себя в дебияне:
У меня на отсутствие файлов *.qm поначалу тоже ругался, а при сборке проекта он их пересобирает из /tramslate/*.ts с помощью release (достаточно её взять от Qt4.8 т.к., к примеру от Qt5.3 тащит за собой ещё пакет QT5XML и после этого у меня сыплет сообщения, что вообще нет ни QT5.0 ни QT5.9) и собирал для предсказуемости результата под Linux LiveCD Puppy (Tahr), хотя использую в основном Xenial.

Ещё было сообщение на отсутствие русского не моноширного фонта, но здесь скоприровал *mono-R.

А сам проект загружен по bzr но или директория проекта должна иметь название src и рядом находится директория resources, а то как то с путями тоже qmake есть несостыковка, если иное название директории проекта (и тогда дубль-копировние поможет)
Last edited by forthuser on 06 Sep 2023 21:12, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Shaos »

А да - действительно в qm появились файлы :)
Зачем тогда оно так сильно ругалось поначалу ;)

Code: Select all

RCC: Error in '../src/application.qrc': Cannot find file '...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Shaos »

Shaos wrote:

Code: Select all

> make
...
In file included from ../src/gui/dialogs/appdialog.h:8,
                 from ../src/gui/circuitwidget/circuitwidget.cpp:17:
./ui_appdialog.h: In member function ‘void Ui_AppDialog::setupUi(QDialog*)’:
./ui_appdialog.h:407:54: error: ‘PlaceholderText’ is not a member of ‘QPalette’
         palette.setBrush(QPalette::Active, QPalette::PlaceholderText, brush);
                                                      ^~~~~~~~~~~~~~~
./ui_appdialog.h:411:56: error: ‘PlaceholderText’ is not a member of ‘QPalette’
         palette.setBrush(QPalette::Inactive, QPalette::PlaceholderText, brush);
                                                        ^~~~~~~~~~~~~~~
./ui_appdialog.h:415:56: error: ‘PlaceholderText’ is not a member of ‘QPalette’
         palette.setBrush(QPalette::Disabled, QPalette::PlaceholderText, brush);
                                                        ^~~~~~~~~~~~~~~
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-copy’
make: *** [Makefile:4554: build/objects/circuitwidget.o] Error 1
Это несовместимость Qt - несколько страниц назад решалось пересохранением проблемных форм в моей версии Qt-дизайнера (который у меня сейчас 5.11.3+dfsg1-1+deb10u5)
Пересохранил этот диалог - двигаюсь дальше:
Screenshot from 2023-09-08 04-31-35.png
Вот теперь собралось :idea:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net