Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: STM32 разработка GUI

Пт апр 02, 2021 18:09:19

jcxz, ну да, ну да. По DMA отправлять кусок фоновой картинки и куски всех кнопок с разными смещениями. Вместо того чтобы сделать по-человечески и рисовать линиями и прямоугольниками.
Ну и про "по частям" кому другому втирайте.

Re: STM32 разработка GUI

Сб апр 03, 2021 12:01:36

Итого в сухом остатке....
Я правильно понимаю, что все изобретают свои велосипеды?

Re: STM32 разработка GUI

Сб апр 03, 2021 13:50:12

Для работы с цветными графическими дисплеями нужно иметь 2 основные функции: начальную инициализацию (с сопутствующими ресетами, ориентацией и пр.) и вывод одной точки.
Далее создаются или находятся железонезависимые функции графических примитивов: рисование линии, рисование 4-угольника, рисование окружности, ну и работа со шрифтами. Есть еще сопутствующие функции, типа выбора окна, но это уже по ходу дела выявляется.
Так вот GUI часто состоит только из этих примитивов по отдельности и в комбинации друг с другом.

А тач-скрин к самому ЖК никак не относится.
При считывании информации с сенсора вы получаете координаты касания, к которым соотносите координаты графических объектов и так получаете управление.

Это то, что я понял недавно (и реализовал), впервые связавшись с графическим ЖК (ST7735).

Re: STM32 разработка GUI

Сб апр 03, 2021 13:59:04

jcxz, ну да, ну да. По DMA отправлять кусок фоновой картинки и куски всех кнопок с разными смещениями. Вместо того чтобы сделать по-человечески и рисовать линиями и прямоугольниками.
Ну и про "по частям" кому другому втирайте.
Вижу, что ничего не поняли из того что я писал. :dont_know:
Выдохните и перечитайте ещё раз.

Добавлено after 2 minutes 56 seconds:
вывод одной точки.
Далее создаются или находятся железонезависимые функции графических примитивов:
Если примитивы рисовать поточечно, то GUI будет работать со скоростью черепахи, сжирая все ресурсы CPU при этом.

Re: STM32 разработка GUI

Сб апр 03, 2021 14:01:09

Для работы с цветными графическими дисплеями нужно иметь 2 основные функции: начальную инициализацию (с сопутствующими ресетами, ориентацией и пр.) и вывод одной точки.

Да, если хочется чтобы STM32 отрисовывал графику медленнее AVR, то именно так и нужно делать :)

Re: STM32 разработка GUI

Сб апр 03, 2021 14:44:13

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

Re: STM32 разработка GUI

Сб апр 03, 2021 15:18:28

Если вы неспособны сформулировать свою мысль так, чтобы ее можно было однозначно и правильно понять с первого раза, не стоит винить в этом окружающих. Попробуйте еще раз.
Разжую предельно просто: В одном моём проекте используется цветной LCD 320x240 пикселей, на котором рисуется GUI. Рисуется в видеопамяти, которая находится во внутренней памяти STM32F4xx и пересылается затем в память контроллера LCD. Без использования внешней памяти. Скорость вывода - предельная для данного интерфейса подключения.
Начинайте думать как мне это удалось. При том что, как думаете:
Угу. Учитывая, что в контроллере физически не хватит памяти даже на пол-картинки.
:)))
У кого-то "и на полкартинки не хватит", а у меня всё это заняло всего = 38400+4096 байт внутренней памяти МК.
Видимо всё дело в кривости рук. :)))

Re: STM32 разработка GUI

Сб апр 03, 2021 16:42:21

Объем памяти для видеобуфера (поскольку вы говорите о видеобуфере как о едином целом, повода рассматривать отображение по частям нет) 320х240х2 = 150 кБ. Оперативки в контроллере stm32f103 всего 20 кБ. Мы ведь рассматриваем наиболее распространенный случай. Впрочем и в других контроллерах пускать на ветер 150 кБ вряд ли кто станет.
Отсюда вывод: реализовать все именно так, как вы описали невозможно.
Значит описание не соответствует действительности.
Начинайте думать как мне это удалось.
Вы ссылку мою смотрели? Даже не начинайте думать как мне это удалось.

Re: STM32 разработка GUI

Сб апр 03, 2021 18:00:41

Foxhound, Так есть же VTFT для STM32 у ME.https://forum.mikroe.com/
Все как на VB с формами и элементами управления. Нет поддержки SPI, но умельцы решают эту проблему. Я баловался с ILI9341.

Re: STM32 разработка GUI

Сб апр 03, 2021 23:12:46

Отсюда вывод: реализовать все именно так, как вы описали невозможно.
Ладно бы если-б только вашей квалификации не хватало, чтобы самостоятельно найти решение. Но вы даже не умеете прочитать и понять готовых советов как это делается, а ведь ничего экстраординарного нет:
Для GUI (без полупрозрачностей!) достаточно 4 бит на пиксел - и на весь видеобуфер вполне хватит внутренней памяти многих нежирных МК.
:dont_know:

Re: STM32 разработка GUI

Вс апр 04, 2021 09:15:49

достаточно 4 бит на пиксел - и на весь видеобуфер вполне хватит внутренней памяти многих нежирных МК.

Хорошо, если вы не способны посчитать даже это, я помогу: объем всего видеобуфера для дисплея 320х240х(4/8) = 38400. Объем памяти 20480, чуть ли не вдвое меньше.
Если вы еще пять раз повторите подобную чушь, правдоподобнее она не станет.
.
Конечно, на подобных контроллерах рисовать GUI можно. Но обычно это делается послойно. Сначала из какой-нибудь постоянно памяти загружается фон, потом поверх него рисуются по одному элементы управления. При реакции на события перерисовываются только те элементы, которым нужна анимация.
Более сложный вариант - рисовать как в компьютерных играх чуть ли не трассировкой лучей: на какой координате (и соответственно цвету пикселя) каждого элемента соответствует каждый пиксель экрана. Такой способ более плавный, но гораздо более сложный и затратный по скорости.
В совсем мощных контроллерах - по крайней мере если на плате установлено очень много оперативки - можно уже пользоваться способом jcxz - выделить огромный буфер, отрисовать в него все, потом разом выплюнуть на дисплей.
.
Но по-хорошему, повторяю, не стоит идти на поводу моды и маркетологов: интерфейс в первую очередь должен быть удобным, что подразумевает наличие механических элементов управления и своего индикатора на каждый контролируемый параметр.

Re: STM32 разработка GUI

Вс апр 04, 2021 10:24:42

Да не нужен там такой огромный буфер! Разделить экран на спрайты 8х8 для цвета, понадобится не более 10 байт на спрайт, т.е. в 6.4 раза меньше, чем надо для попиксельного отображения. Правда, это все равно много.

Re: STM32 разработка GUI

Вс апр 04, 2021 15:30:00

Для обычных применений - разумеется не нужен. Осталось донести эту мысль до jcxz.
Достаточно, как я и описал, по очереди вывести все что нужно - фон, элементы управления и т.д. Ну мигнет оно при первой отрисовке, ну и что.
Но не забывайте о мощных системах, где уже полноценный процессор и полноценная ОС используется. Впрочем, там и полноценные графические библиотеки доступны. Ну хотя бы framebuffer / X11.

Re: STM32 разработка GUI

Вс апр 04, 2021 23:07:06

Объем памяти 20480, чуть ли не вдвое меньше.
Где 20480??? В STM32F469? Что за бред? :shock: Откройте мануал на него - прочитайте сколько там ОЗУ.
Вижу что вам очень хочется спорить, так что готовы нести любую чушь лишь бы спорить....

Добавлено after 1 minute 18 seconds:
Для обычных применений - разумеется не нужен. Осталось донести эту мысль до jcxz.
Донесите лучше мануал на STM32F469 до себя, чтобы не нести всякую ахинею.

Эксперд млин.... :facepalm:

Re: STM32 разработка GUI

Вс апр 04, 2021 23:55:05

Где 20480??? В STM32F469?
Нет, конечно. В stm32f103, мы же про него говорим.
Ответить