15.10.2017, 17:32
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 293
Сказал спасибо: 0
Сказали Спасибо 219 раз(а) в 125 сообщении(ях)
|
Re: Proteus модели
Сообщение от olegprom19
|
реально такой сделать с индикацией разными цветами?
|
Сообщение от Halex07
|
Как Вы собираетесь реализовать "смешение" цветов в спрайтовой графике?
|
Реально. Ничего смешивать не надо - просто создать спрайты с разными цветами.
Для примера, см. прикрепленный файл (вырезка из Proteus VSM SDK).
ТС ничего не написал про то, что он собирается моделировать. Если только цифровую часть, то "курить" нужно примитив RTDPROBE в поразрядном (BITWISE) режиме, с обязательным использованием свойства ELEMENT, плюс, думаю, обвязка из дешифратора и простой логики (варианты м.б. разные, в зависимости от вида спрайтов - сегменты по отдельности, либо полная цифра).
Если же еще и аналоговую, то модель усложнится на токозадающие входные цепи.
Все это муторно и долго делать. ТС уверен, что ему это нужно? Что ТС этим добъется, с точки зрения работоспособности схемы?
|
|
|
|
15.10.2017, 19:06
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus модели
Будет только вывод цифры (в зависимости от сегментов) и цвета цифры в зависимости от выбранного анода (красный зеленый)
все сегменты в цифре будут одного цвета либо красные либо зеленые
т.е. у сегмента должно быть три состояния выкл, красный, зеленый
(в идеале 4 еще желтый, если оба анода включены)
таких схемы (как вы привели в пдф) должно быть видимо две для каждого катода...
к примеру элемент 0 (сегмент0) привязан к пробнику, ток есть первое состояние элемента, тока нет второе
а у меня должно быть ещё третье состояние когда ток есть на "другом" пробнике, или я чет путаю?!
в индикаторе где две цифры с общим анодом, в принципе реализовано похожее (только вторая цифра отражена рядом) или может там по другому
Последний раз редактировалось olegprom19; 15.10.2017 в 20:31.
|
|
|
|
15.10.2017, 22:15
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 293
Сказал спасибо: 0
Сказали Спасибо 219 раз(а) в 125 сообщении(ях)
|
Re: Proteus модели
Сообщение от olegprom19
|
или я чет путаю?!
|
Похоже разговор глухого со слепым. Чур я буду слепым
Для начала, вообще не хотел отвечать на Ваш самый первый вопрос, т.к. считаю неуважением к собеседнику, когда задается вопрос и даже не удосуживаются приложить datasheet на элемент и более подробно объяснить желаемый результат. Но Вам начали давать советы: от низзья до ..., поэтому не удержался.
Далее, похоже, Вы совершенно не поняли о чем я говорю, поэтому, объясняю с картинками (для сегмента A - остальные по аналогии):
1. Результат работы
2. Спрайты для сегмента A
3. Дочерний лист для сегмента A
З.Ы. Показан только принцип многоцветного индикатора - полярности и другие рюшечки - это уж сами.
|
|
|
|
16.10.2017, 08:23
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus модели
ProtAS-13, спасибо за ответ
логика включения сегментов понятна
у меня сложность с пониманием привязки "логики работы" к сегменту/ам
т.е. как нарисовать сегменты, и создать символы я разобрался
а вот создание dll mdf,
я предполагал 8 символов и 4 состояния у каждого (может rtprobe 4)
так видимо нельзя
в приведенной вами схеме 32символа (по 4 на сегмент) по 2 состояния
Последний раз редактировалось olegprom19; 16.10.2017 в 10:20.
|
|
|
|
16.10.2017, 11:52
|
|
Прописка
Регистрация: 12.02.2016
Сообщений: 107
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Proteus модели
Доброго дня, коллеги.
Из знатоков VSM SDK кто ни будь может мне помочь?
Непонятки вызывает логика функционирования IDSIMPIN::invert(). На что она влияет?
Исходные данные: Я в setup модуле нашел строку INVERT в параметрах.
Распарсил, нашел имя управляющего пина. Вызвал на нем invert().
И что дальше ? Где еще учитывать надо?
В simulate модуле и ishigh(Pin-›istate()) писал, и Pin-›isactive() все равно как срабатывал при HIGH так и срабатывает, в не зависимости от вызова или не вызова invert().
|
|
|
|
16.10.2017, 13:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Re: Proteus модели
Сообщение от OldDriver
|
Непонятки вызывает логика функционирования IDSIMPIN::invert(). На что она влияет?
|
Она влияет на работу drivebool(), isposedge(), isnegedge()
|
|
|
|
16.10.2017, 13:41
|
|
Прописка
Регистрация: 12.02.2016
Сообщений: 107
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Proteus модели
Сообщение от TEHb
|
Она влияет на работу drivebool(), isposedge(), isnegedge()
|
Если пишется примитив "Задержка управляемая напряжением"
Есть цифровой пин EN(КАК в Delay_1), есть пин вход D и пин выход Q
Как методологически правильно написать такую логику?
Код:
|
// Цифровая компонента. Отработка измененмй входных сигналов.
VOID DVTD::simulate(ABSTIME time, DSIMMODES mode) {
if (EN_PIN-›isactive()) { // Если задержка разрешена
Q_PIN-›setstate(time,
((1 == FrontDelay || 3 == FrontDelay) ? cdelay : 0),
((2 == FrontDelay || 3 == FrontDelay) ? cdelay : 0),
DeglitchTime, D_PIN-›istate());
}
else Q_PIN-›setstate(time, 0, 0, DeglitchTime, D_PIN-›istate());
} |
cdelay и DeglitchTime уже определены.
Как надо написать что бы переключалась полярность разрешающего сигнала. Как это сделано в DELAY_1?
|
|
|
|
16.10.2017, 14:44
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 293
Сказал спасибо: 0
Сказали Спасибо 219 раз(а) в 125 сообщении(ях)
|
Re: Proteus модели
Сообщение от olegprom19
|
я предполагал 8 символов и 4 состояния у каждого (может rtprobe 4)
так видимо нельзя
в приведенной вами схеме 32символа (по 4 на сегмент) по 2 состояния
|
Что Вы понимаете под символами, а что под состояниями? Сначала следует разобраться в терминологии и основах. Приступим.
За отображение того или иного спрайта отвечает переменная STATE, которая может работать в двух режимах: последовательные состояния и поразрядный ( BITWISE) режим.
Спрайты именуются по следующему принципу:
- Для последовательных состояний переменной STATE: ‹ основное имя спрайта›_‹ номер последовательного состояния, соответствующее переменной STATE›.
Пример: спрайт с номером 7SEG_7 будет выведен на экран при значении STATE равном 7. Спрайт 7SEG_13 - при STATE=13, и т.п. Усвоили?
- Для BITWISE (наш случай) режима: ‹ основное имя спрайта›_‹ номер разряда в переменной STATE›_‹ значение этого разряда (0 или 1)›.
Пример: спрайт с номером NARG_0_0 (пустышка в сегменте A) будет выведен на экран, если разряд 0, переменной STATE равен 0. Спрайт NARG_0_1 (красный сегмент A) будет выведен на экран, если разряд 0, переменной STATE равен 1.
Спрайт NARG_8_0 (пустышка в сегменте A) будет выведен на экран, если разряд 8, переменной STATE равен 0. Спрайт NARG_8_1 (зеленый сегмент A) будет выведен на экран, если разряд 8, переменной STATE равен 1. Усвоили?
Свойство ELEMENT, работающее только в BITWISE режиме, как раз и определяет какой разряд в переменной STATE будет меняться, т.е., при подаче 0 на примитив RTDPROBE, со свойством ELEMENT=0 ( LP1) - будет отображаться спрайт (NARG_ELEMENT_VALUE) NARG_0_0, а при подаче 1 - NARG_0_1. Усвоили?
Теперь считаем: у Вас 8 СЕГМЕНТОВ, которые могут отображаться 3-мя цветами, каждый из которых может быть либо включен (отображается цвет), либо выключен (отображается пустышка). Значит, спрайтов должно быть 8сегментов * 3цвета * 2значения = 48.
Очень надеюсь, что понятно объяснил, возможно, не только Вам.
Впрочем все это я уже описывал в своей древнейшей шпаргалке в разделе "Интерактивные примитивы (Real Time Digital Probe)".
Последний раз редактировалось ProtAS-13; 16.10.2017 в 14:46.
|
|
|
Сказали "Спасибо" ProtAS-13
|
|
|
17.10.2017, 12:24
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus модели
а пробник rtprobe_4 На выходе дает два значения разряда?
Из FAQ
Сообщение от Halex07
|
Ну и несколько слов о цифровых примитивах RTDPROBE. Однобитные примитивы индикаторов ведут себя предсказуемо: если на входе лог. 0, то соответствующий Target Element (символ) не активизирован, если на входе лог. 1, то он активизирован. В той же папке имеются многовходовые RTDPROBE. Детально я их не исследовал, но при беглой логика входов абсолютно непонятна – что-то похожее на исключающее ИЛИ
|
Последний раз редактировалось olegprom19; 17.10.2017 в 20:42.
|
|
|
|
17.10.2017, 13:02
|
|
Прописка
Регистрация: 12.02.2016
Сообщений: 107
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Proteus модели
Доброго дня(ночи), коллеги.
Предлагаю вашему вниманию модель управляемой напряжением задержки.
Модель программная. В архиве находится файл DVTD.dll которую надо положить в папку MODELS. В архиве приложен файл проекта, в правом углу которого расположено УГО и со скриптом описания. До начала симуляции необходимо создать такой элемент.(Выделить УГО и скрипт и 'MAKE Device'. Модель имеет два режима интерполяции диапазона зависимости T(V). Параметр MODE. Режим MODE=SINGLE означает линейную аппроксимацию по 2 точкам VMIN-TMIN, VMAX-TMAX. При значениях V меньше VMIN Т всегда равно TMIN. При значениях V больше VMAX T всегда равно TMAX.
Режим MODE=TABLE означает кусочно-линейную аппроксимацию по таблице значений. Параметр LENGTH=число означает размер задаваемой таблицы соответствий. Сами значения задаются в виде V(номер)=значение и T(номер)=значение.
Важным параметром является параметр DELAY=(UP/DOWN/BOTH) определяющий какие фронты задерживаем.
В проекте приведены два примера описания использования элемента.
В проекте приложен архив исходного кода проекта на VC2015.
Хотелось бы услышать критику. Что не удобно, что идеологически не правильно и прочее.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:24.
|
|