Jump to content
    

32F769IDISCOVERY + MIPI DSI 720p (1280x720)?

У меня скорость бегущих строк намного ниже чем по этой ссылке. Если с такой большой скоростью строка будет бежать, она будет нечитабельна на любой FPS.

На бегущих счётчиках тоже не видно никаких артефактов, дёрганий и т.п.

Share this post


Link to post
Share on other sites

У меня скорость бегущих строк намного ниже чем по этой ссылке.

Речь не о скорости, а о плавности.

 

На бегущих счётчиках тоже не видно никаких артефактов, дёрганий и т.п.

Не видно ровно до тех пор, пока рядом не окажется счетчика с 60 FPS.

30 - это практически нижняя граница комфортного восприятия движения.

Share this post


Link to post
Share on other sites

Речь не о скорости, а о плавности.

 

 

Не видно ровно до тех пор, пока рядом не окажется счетчика с 60 FPS.

30 - это практически нижняя граница комфортного восприятия движения.

Кино - 24 fps и ничего, никно не жужжит… или это не те fps?

Share this post


Link to post
Share on other sites

Кино - 24 fps и ничего, никно не жужжит… или это не те fps?

Так ведь не от хорошей жизни 24 FPS выбрали, просто плёнка дюже дорога была.

Share this post


Link to post
Share on other sites

Кино - 24 fps и ничего, никно не жужжит… или это не те fps?

В кино каждый кадр в отдельности смазан. Тема эта достаточно обширна, описана боле менее здесь https://habrahabr.ru/post/338796/ (раскрывается в комментариях).

На хабаре так же есть статья, как сделать нормальную анимацию с низким FPS. Найти сейчас не смог. Читал пару лет назад.

Share this post


Link to post
Share on other sites

а почему так нельзя рисовать прямоугольники ? вроде самое оно, если ширина регистра позволяет

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

 

олл, почему дисплей подёргивается, когда dma2d работает ? т.е. картинка как бы сдвигается в сторону

Не хватает производительности подсистемы памяти.

 

Ну вот, а у нормального UI перерисовка не должна занимать больше 16 мс (т.е. обеспечивать 60 к/с), иначе плавной анимации не будет по определению.

Да, TFT-экран, конечно, надо обслуживать с частотой 60, а не 30. Даташит позволяет, но пользователей тоже надо уважать.

У меня все плавно. Я как-то по этому поводу проводил эксперименты - если делать с умом, то начиная от 22..24fps все можно сделать, чтобы выглядело плавно.

 

Посмотрите с каким fps Вы смотрите фильмы, и ничего не дергается...

 

В любом случае есть хороший запас - у меня память 16бит, ожно перейти на 32бита, но под мою задачу смысла нет.

 

Прямоугольник рисовать можно, Пример:

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

Share this post


Link to post
Share on other sites

...если делать с умом, то начиная от 22..24fps все можно сделать, чтобы выглядело плавно.

Вот с этого момента можно подробнее, какие техники применяются для обеспечения плавности?

Share this post


Link to post
Share on other sites

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

всё правильно

 

Share this post


Link to post
Share on other sites

Либо у Вас высокая частота вывода

в общем да, была пропущена установка прескалера RCC_PLLSAIDivR_Div8

что даёт где-то восьмикратный запас по разрешению

 

зы: кстати, в 32 битном (vs 24) режиме даже без прескалера не дёргается

 

Edited by Огурцов

Share this post


Link to post
Share on other sites

ещё вопрос: есть мысли как подключить к stm второй дисплей ? с разными картинками, конечно

Побаловался с MIPI DSI в командном режиме. Идея его в том, что на индикаторе используется графический контроллер со своей GRAM памятью (например OTM8009A), передача данных происходит при необходимости изменения картинки. Соответственно к DSI шине вполне возможно подключить несколько индикаторов.

 

"Шаманъ" Случайно не проверяли, что быстрее копирует DMA2D или просто DMA. Имеется в виду режим MemToMem

Share this post


Link to post
Share on other sites

Идея его в том, что на индикаторе используется графический контроллер со своей GRAM памятью (например OTM8009A), передача данных происходит при необходимости изменения картинки.

 

Дак ведь на скорость это не влияет, только на энергопотребление, когда потока данных нет.

Share this post


Link to post
Share on other sites

Подскажите MIPI DSI дисплеи имеют в себе контроллер и встроенный framebuffer как например ILI9341, SSD1351 или же они тупые и в них нужно только гнать поток данных как в дисплеях с RGB интерфейсом?

Share this post


Link to post
Share on other sites

Вот с этого момента можно подробнее, какие техники применяются для обеспечения плавности?

В моем случае достаточно синхронизации рисования и анимации с кадровой разверткой, а также разумный выбор скорости анимации - если будет медленно, то это не интересно, кроме того "дефекты" разные на маленькой скорости более заметны. Очень большая скорость приведет к необходимости сглаживания (motion blur) или увеличения частоты кадров. Нужно выбрать золотую середину :). Например, для всяких кнопочек выползающих сбоку экрана что-то около 200мс на всю анимацию при 30к/с самое то.

Естественно многое зависит от того, что за объекты Вы изменяете на экране и как они движутся/изменяются.

 

"Шаманъ" Случайно не проверяли, что быстрее копирует DMA2D или просто DMA. Имеется в виду режим MemToMem

Не проверял. У меня узкое место это 16битная SDRAM, с такой памятью подозреваю глобальной разницы не будет.

Share this post


Link to post
Share on other sites

Подскажите MIPI DSI дисплеи имеют в себе контроллер и встроенный framebuffer как например ILI9341, SSD1351 или же они тупые и в них нужно только гнать поток данных как в дисплеях с RGB интерфейсом?

они типа "тупые"

Share this post


Link to post
Share on other sites

Подскажите MIPI DSI дисплеи имеют в себе контроллер и встроенный framebuffer как например ILI9341, SSD1351 или же они тупые и в них нужно только гнать поток данных как в дисплеях с RGB интерфейсом?

Есть два базовых режима интерфейса MIPI DSI: "Video mode" и "Command mode". В видео режиме они, как Вы выразились "тупые", в командный режим подразумевает что для хранения картинки в дисплее используется своя GRAM, т.е. встроенный framebuffer. К сожалению далеко не все контроллеры с MIPI DSI поддерживают командный режим. Мне так и не удалось найти дисплей с поддержкой командного режима и разрешения хотя бы 1280х800.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...