Перейти к содержанию
    

Как работать с графическим ЖКИ

Имею контроллер ЖКИ S1D13706 с внутренней памятью 80KB, подключенный к контроллеру STM32. ЖКИ - 320x240, 8-битовый цвет, как раз на всю память контроллера ЖКИ.

Нужно, чтобы изображение плавно перемещалось по экрану. Если просто стереть, а потом нарисовать на новом месте, появляется мерцание, когда выводится стертый экран. Примерно, как полосы на экране телевизора, когда его показывают в кино.

Можно формировать изображение в отдельном буфере во внешнем ОЗУ, а потом переписывать его в контроллер ЖКИ по DMA.

Можно в самом контроллере пожертвовать цветностью в до 4 битов на пиксел, сделать два буфера, формировать изображение в одном, выводить из другого, чередовать их.

Еще попробовал стирать экран в "мертвое время", когда выводятся строки за пределами экрана. Довел их до максимального количества (280), но все равно не хватает, хотя характер мерцаний уже другой - просто темнеет картинка.

Есть ли еще способы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно формировать изображение в отдельном буфере во внешнем ОЗУ, а потом переписывать его в контроллер ЖКИ по DMA.

Это, пожалуй, самый правильный вариант. Заодно и некоторый уровень абстракции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отдельный буфер - согласен, правильное решение. Но больно уж дорогое.

Рисовать, а потом стирать - не получается, новое и старое изображения перекрываются. Стирая старое, новое частично испортится.

Думаю попробовать рисовать по частям - столбик старого стер, столбик нового нарисовал. Только трахаться с переключениями придется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильно это сначала стирать старое движущееся изображение, а затем выводить новое.

Но без синхронизации с "ходом луча" дисплея всё равно так или иначе будет фликер.

 

Как подсказали, формировать готовую картинку в буферном ОЗУ, а затем полностью перекидывать весь кадр на дисплей даст более менее приемлимый результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал буфер во внешней памяти. Можно сказать, результат устраивает.

Кое-что интересное предлагаю посмотреть здесь

http://electronix.ru/forum/index.php?showt...st&p=886168

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...