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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this