реклама на сайте
подробности

 
 
> Как работать с графическим ЖКИ
ViKo
сообщение Feb 2 2011, 19:42
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Имею контроллер ЖКИ S1D13706 с внутренней памятью 80KB, подключенный к контроллеру STM32. ЖКИ - 320x240, 8-битовый цвет, как раз на всю память контроллера ЖКИ.
Нужно, чтобы изображение плавно перемещалось по экрану. Если просто стереть, а потом нарисовать на новом месте, появляется мерцание, когда выводится стертый экран. Примерно, как полосы на экране телевизора, когда его показывают в кино.
Можно формировать изображение в отдельном буфере во внешнем ОЗУ, а потом переписывать его в контроллер ЖКИ по DMA.
Можно в самом контроллере пожертвовать цветностью в до 4 битов на пиксел, сделать два буфера, формировать изображение в одном, выводить из другого, чередовать их.
Еще попробовал стирать экран в "мертвое время", когда выводятся строки за пределами экрана. Довел их до максимального количества (280), но все равно не хватает, хотя характер мерцаний уже другой - просто темнеет картинка.
Есть ли еще способы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
aaarrr
сообщение Feb 2 2011, 22:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ViKo @ Feb 2 2011, 22:42) *
Можно формировать изображение в отдельном буфере во внешнем ОЗУ, а потом переписывать его в контроллер ЖКИ по DMA.

Это, пожалуй, самый правильный вариант. Заодно и некоторый уровень абстракции.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Feb 2 2011, 22:48
Сообщение #3


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



а я ещё рисовал на новом месте, а потом стирал на старом. за движущимися объектами получается небольшой шлейф, но зато без мерцания )

но DMA это конечно правильнее, да.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 3 2011, 08:05
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Отдельный буфер - согласен, правильное решение. Но больно уж дорогое.
Рисовать, а потом стирать - не получается, новое и старое изображения перекрываются. Стирая старое, новое частично испортится.
Думаю попробовать рисовать по частям - столбик старого стер, столбик нового нарисовал. Только трахаться с переключениями придется.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Feb 3 2011, 08:19
Сообщение #5


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Правильно это сначала стирать старое движущееся изображение, а затем выводить новое.
Но без синхронизации с "ходом луча" дисплея всё равно так или иначе будет фликер.

Как подсказали, формировать готовую картинку в буферном ОЗУ, а затем полностью перекидывать весь кадр на дисплей даст более менее приемлимый результат.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 17 2011, 09:04
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Сделал буфер во внешней памяти. Можно сказать, результат устраивает.
Кое-что интересное предлагаю посмотреть здесь
http://electronix.ru/forum/index.php?showt...st&p=886168

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016