07.01.2016, 11:21
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Proteus общие вопросы
Не получается синхронизировать осциллограмму канала B (датчик перехода нуля) от канала А осциллографа (напряж. на симмист.)? Так?
Так ведь при одном и том же уровне на канале А, сигнал на канале В принимает то высокий, то низкий уровень.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
07.01.2016, 13:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.02.2012
Сообщений: 5,803
Сказал спасибо: 827
Сказали Спасибо 2,082 раз(а) в 1,493 сообщении(ях)
|
Re: Proteus общие вопросы
А вообще есть такая микросхема фазового регулятора 1182ПМ1.
Сам ее не разу не применял. Плохо что нет гальван. развязки от сети. И на контактах потенциометра
сеть. Не сделаешь цифровой потенциометр. Что-бы управлять с контроллера.
Еще один красавец.
Последний раз редактировалось цифровик; 07.01.2016 в 19:00.
|
|
|
|
30.01.2016, 03:22
|
|
Частый гость
Регистрация: 28.07.2006
Сообщений: 48
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
На моделях крупных LCD Proteus наблюдается следующий неприятный эффект.
При заполнении всего экрана сигнатурой 55H, должны быть линии светлые,
шириной в точку, чередующиеся с тёмными - тоже шириной в точку.
Но наблюдается вот что:
Я, конечно, великолепно понимаю, что это из-за того, что предполагаемые 256 точек горизонтали этого экрана отображаются на "юниты" прямоугольника LCD и при отображении в реальные пиксели это происходит из-за некратности предполагаемых 256 точек и реальных пикселей...
На основе исходников LCD19264A я попробовал написать модель LCD, которая не имела бы этого эффекта.
Ну, скажем, в юнитах задаем прямоугольник дисплея LCD заведомо больше изображения, кратного 256,
затем вычисляем размеры, кратные 256, и отрисовываем в этих размерах по центру прямоугольника дисплея, отступив сколько надо от краев.
Конкретно я выводил графику в квадрат 2560х2560 юнитов, тогда как сам прямоугольник дисплея 3310х3310 юнита.
Но эффект не исчез. Линии выводятся также несколько неравномерно...
Существует какой-либо метод, позволяющий выводить изображение в реальные точки, чтобы не было вот такого искажения геометрии?
Последний раз редактировалось Halex07; 31.01.2016 в 10:26.
|
|
|
|
30.01.2016, 09:43
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Proteus общие вопросы
Так вы масштаб изображения то увеличте, чтоль.. У вас там просто при масштабировании количество пикселей дисплея не помещается в количество пикселей для отображения модели на мониторе компа...
Кстати, вы серьезно пытаетесь столь объемную графику рисовать столь мелким МК? Ну тогда вы точно кроме полосочек и клеточек ничего не получится. Один только шрифт 5х8 половину МК займет.
|
|
|
|
30.01.2016, 21:28
|
|
Частый гость
Регистрация: 28.07.2006
Сообщений: 48
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от NewWriter
|
У вас там просто при масштабировании количество пикселей дисплея не помещается в количество пикселей для отображения модели на мониторе компа...
|
Физически количества пикселей дисплея для отображения 256 точек модели на мониторе компа там хватает, я проверял это с самого начала:
Понятно, что 256 точек модели не всунуть красиво в имеющиеся 265 пикселей дисплея.
Как я и написал ранее - числа некратные.
Но я и хотел написать в своей модели так, чтобы если пикселей дисплея хватает - то попадать в пиксели дисплея, а не масштабировать некратные картинки.
Но мне уже кажется, что тут это сделать принципиально весьма трудно.
У меня разрешение монитора - 120 dpi, то есть, 120 пикселей дисплея на "мировой дюйм".
Графические функции Proteus работают с условными единицами " units", и в "мировом дюйме" их 1000.
Цитата:
|
By default, the units are defined in terms of 1000 pixels per world inch.
|
Значит, соотношение следующее:
1000 "units" = 120 пикселей дисплея, и на 1 единицу приходится 120/1000=0,12 пикселея дисплея,
или на 10 единиц, соответственно, приходится 1,2 пикселея дисплея.
Получается, что работая с графическими функциями Proteus, я принципиально не могу точно попасть в реальные пиксели дисплея, даже если мне их хватает заведомо.
В VSM API есть функция VOID ICOMPONENT::setdrawscale (INT ppi)
Цитата:
|
Определяет коэффициент масштабирования, используемый для всех функций векторной графики. Коэффициент масштабирования по умолчанию составляет 1000 единиц на мировой дюйм.
|
Но я подозреваю, что этого соотношения и ей не преодолеть:
на 10 единиц приходится 1,2 пикселя дисплея.
Поэтому я и задал свой вопрос так:
Существует какой-либо метод, позволяющий выводить изображение в реальные точки, чтобы не было вот такого искажения геометрии?
Сообщение от NewWriter
|
Кстати, вы серьезно пытаетесь столь объемную графику рисовать столь мелким МК?
|
Нет, это просто тестовая схема для изучения проблемы. Если заполнять экран сигнатурами 55H, 0AAH - шахматное поле из точек - всё выглядит ещё хуже...
Последний раз редактировалось Halex07; 31.01.2016 в 10:26.
|
|
|
|
31.01.2016, 10:25
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Lavrentii
|
На моделях крупных LCD Proteus наблюдается следующий неприятный эффект.
|
Что-то уж больно амбициозно. Конкретно на каких из существующих, или только на вашем "самопале"?
Сообщение от Lavrentii
|
На основе исходников LCD19264A я попробовал написать модель LCD, которая не имела бы этого эффекта.
|
Если склероз не изменяет, то эта китайская модель конкретно была под TINSHARP TG19264A 192x64 точки (три драйвера SBN0064G - 64х64 точки). Отсюда там три входа выбора кристаллов. У вас их вообще нет, следовательно Вы кардинально переработали исходники и перекомпилировали "под себя". Уверены, что там не накосячили???
*************
Ну, и предупреждение по другому поводу. Красный цвет в сообщениях - прерогатива администраторов и модераторов. Это общепринято на большинстве форумов. Вам что, палитры цветов мало, чтобы выделить что-то? Так можно нарваться на неприятность... Учтите на будущее, пока сам поправил, а то забудете.
Последний раз редактировалось Halex07; 31.01.2016 в 10:27.
|
|
|
|
31.01.2016, 19:58
|
|
Частый гость
Регистрация: 28.07.2006
Сообщений: 48
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Halex07
|
Что-то уж больно амбициозно. Конкретно на каких из существующих, или только на вашем "самопале"?
|
Так я и показываю этот эффект на "фирменном" LCD Proteus, 256x256 LCD, на основе которого демонстрируют в наборе примеров все шахматы.
Сообщение от Halex07
|
Вы кардинально переработали исходники и перекомпилировали "под себя". Уверены, что там не накосячили???
|
Ну уверенным на 100% не может быть никто. Поэтому я и сравнил то, что получается у меня на "самопале" с заполнением сигнатурой 55Н с фирменным 256x256 LCD Proteus - на всех картинках Вы видите именно его, а не "самопал" - так что это не мои амбиции, а объективная реальность.
Ну и я попробовал это объяснить, как мне кажется, довольно логично. В моих рассуждениях с цифрами по поводу построения графики есть какой-то изъян?
P.S. Ну и совершенно простой опыт, который без кивков в сторону Proteus и возможных ошибок моделей показывает суть эффекта:
Картинка 256х256 точек заполненная линиями вручную.
Эта же картинка, но растянутая в редакторе до 265 точек по горизонтали.
На мой взгляд, однозначно иллюстрирует эффект, который наблюдается при масштабировании изображения LCD дисплея в Proteus.
Последний раз редактировалось Lavrentii; 31.01.2016 в 20:28.
Причина: добавил рисунки
|
|
|
|
31.01.2016, 20:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,587
Сказал спасибо: 704
Сказали Спасибо 4,352 раз(а) в 1,996 сообщении(ях)
|
Re: Proteus общие вопросы
Lavrentii,
Ну там еще есть настройки видеодрайверов(System) попробуйте с ними поиграть.
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
|
|
|
|
01.02.2016, 02:03
|
|
Частый гость
Регистрация: 28.07.2006
Сообщений: 48
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Похоже, что нашел верное решение, как точно попадать в пиксели экрана при отрисовке моделей LCD без масштабирования, если размер прямоугольника LCD позволяет.
Надо отрисовывать изображение функциями Windows GDI, что Proteus VSM позволяет.
1. Получаем контекст устройства (DC) - экранчика LCD :
HDC ghdc;
ghdc = component-›begincache (lcdarea); //--- откроем буфер и получим его HDC
2. Рисуем через функции Windows GDI то, что надо, но по реальным пикселям экрана;
3. Освобождаем контекст устройства (DC) средствами Proteus VSM (я полагаю, что ReleaseDC внутри этой функции)
component-›endcache(); //--- закрываем буфер и отображаем данные
Чисто на проверку вызвал следующую функцию Windows GDI:
Rectangle(ghdc,10,10,100,100);
Результат - не заставил себя ждать:
Прямоугольник со стороной 90 пикселей - "с точностью до миллиметра"!
Последний раз редактировалось Lavrentii; 01.02.2016 в 02:06.
|
|
|
|
05.02.2016, 10:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,767
Сказал спасибо: 5,555
Сказали Спасибо 25,317 раз(а) в 5,688 сообщении(ях)
|
Re: Proteus общие вопросы
Вчера пытался понял логику симуляции записи ЕЕ у пиков. В одном проекте корректно отображается запись в ЕЕ, при останове симуляции и запуске вновь корректно сохраняется записанное в прошлой сессии в память.
В других же проектах в память пишется, при паузе всё корректно отображается, но если симуляцию остановить и запустить заново - память чиста.
Где это можно покрутить, чтоб сохранялось?
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/
моя домашняя страничка: http://www.eddy.com.ua/
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:17.
|
|