Форум РадиоКот https://radiokot.ru/forum/ |
|
STM32 разработка GUI https://radiokot.ru/forum/viewtopic.php?f=59&t=176379 |
Страница 2 из 2 |
Автор: | COKPOWEHEU [ Пт апр 02, 2021 18:09:19 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
jcxz, ну да, ну да. По DMA отправлять кусок фоновой картинки и куски всех кнопок с разными смещениями. Вместо того чтобы сделать по-человечески и рисовать линиями и прямоугольниками. Ну и про "по частям" кому другому втирайте. |
Автор: | Foxhound [ Сб апр 03, 2021 12:01:36 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Итого в сухом остатке.... Я правильно понимаю, что все изобретают свои велосипеды? |
Автор: | Zhuk72 [ Сб апр 03, 2021 13:50:12 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Для работы с цветными графическими дисплеями нужно иметь 2 основные функции: начальную инициализацию (с сопутствующими ресетами, ориентацией и пр.) и вывод одной точки. Далее создаются или находятся железонезависимые функции графических примитивов: рисование линии, рисование 4-угольника, рисование окружности, ну и работа со шрифтами. Есть еще сопутствующие функции, типа выбора окна, но это уже по ходу дела выявляется. Так вот GUI часто состоит только из этих примитивов по отдельности и в комбинации друг с другом. А тач-скрин к самому ЖК никак не относится. При считывании информации с сенсора вы получаете координаты касания, к которым соотносите координаты графических объектов и так получаете управление. Это то, что я понял недавно (и реализовал), впервые связавшись с графическим ЖК (ST7735). |
Автор: | jcxz [ Сб апр 03, 2021 13:59:04 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
jcxz, ну да, ну да. По DMA отправлять кусок фоновой картинки и куски всех кнопок с разными смещениями. Вместо того чтобы сделать по-человечески и рисовать линиями и прямоугольниками. Вижу, что ничего не поняли из того что я писал. Ну и про "по частям" кому другому втирайте. Выдохните и перечитайте ещё раз. Добавлено after 2 minutes 56 seconds: вывод одной точки. Если примитивы рисовать поточечно, то GUI будет работать со скоростью черепахи, сжирая все ресурсы CPU при этом.
Далее создаются или находятся железонезависимые функции графических примитивов: |
Автор: | Reflector [ Сб апр 03, 2021 14:01:09 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Для работы с цветными графическими дисплеями нужно иметь 2 основные функции: начальную инициализацию (с сопутствующими ресетами, ориентацией и пр.) и вывод одной точки. Да, если хочется чтобы STM32 отрисовывал графику медленнее AVR, то именно так и нужно делать |
Автор: | COKPOWEHEU [ Сб апр 03, 2021 14:44:13 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Цитата: Вижу, что ничего не поняли из того что я писал. Если вы неспособны сформулировать свою мысль так, чтобы ее можно было однозначно и правильно понять с первого раза, не стоит винить в этом окружающих. Попробуйте еще раз.
|
Автор: | jcxz [ Сб апр 03, 2021 15:18:28 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Если вы неспособны сформулировать свою мысль так, чтобы ее можно было однозначно и правильно понять с первого раза, не стоит винить в этом окружающих. Попробуйте еще раз. Разжую предельно просто: В одном моём проекте используется цветной LCD 320x240 пикселей, на котором рисуется GUI. Рисуется в видеопамяти, которая находится во внутренней памяти STM32F4xx и пересылается затем в память контроллера LCD. Без использования внешней памяти. Скорость вывода - предельная для данного интерфейса подключения.Начинайте думать как мне это удалось. При том что, как думаете: Угу. Учитывая, что в контроллере физически не хватит памяти даже на пол-картинки. У кого-то "и на полкартинки не хватит", а у меня всё это заняло всего = 38400+4096 байт внутренней памяти МК. Видимо всё дело в кривости рук. |
Автор: | COKPOWEHEU [ Сб апр 03, 2021 16:42:21 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Объем памяти для видеобуфера (поскольку вы говорите о видеобуфере как о едином целом, повода рассматривать отображение по частям нет) 320х240х2 = 150 кБ. Оперативки в контроллере stm32f103 всего 20 кБ. Мы ведь рассматриваем наиболее распространенный случай. Впрочем и в других контроллерах пускать на ветер 150 кБ вряд ли кто станет. Отсюда вывод: реализовать все именно так, как вы описали невозможно. Значит описание не соответствует действительности. Цитата: Начинайте думать как мне это удалось. Вы ссылку мою смотрели? Даже не начинайте думать как мне это удалось.
|
Автор: | linkov1959 [ Сб апр 03, 2021 18:00:41 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Foxhound, Так есть же VTFT для STM32 у ME.https://forum.mikroe.com/ Все как на VB с формами и элементами управления. Нет поддержки SPI, но умельцы решают эту проблему. Я баловался с ILI9341. |
Автор: | jcxz [ Сб апр 03, 2021 23:12:46 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Отсюда вывод: реализовать все именно так, как вы описали невозможно. Ладно бы если-б только вашей квалификации не хватало, чтобы самостоятельно найти решение. Но вы даже не умеете прочитать и понять готовых советов как это делается, а ведь ничего экстраординарного нет:Для GUI (без полупрозрачностей!) достаточно 4 бит на пиксел - и на весь видеобуфер вполне хватит внутренней памяти многих нежирных МК.
|
Автор: | COKPOWEHEU [ Вс апр 04, 2021 09:15:49 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Цитата: достаточно 4 бит на пиксел - и на весь видеобуфер вполне хватит внутренней памяти многих нежирных МК. Хорошо, если вы не способны посчитать даже это, я помогу: объем всего видеобуфера для дисплея 320х240х(4/8) = 38400. Объем памяти 20480, чуть ли не вдвое меньше. Если вы еще пять раз повторите подобную чушь, правдоподобнее она не станет. . Конечно, на подобных контроллерах рисовать GUI можно. Но обычно это делается послойно. Сначала из какой-нибудь постоянно памяти загружается фон, потом поверх него рисуются по одному элементы управления. При реакции на события перерисовываются только те элементы, которым нужна анимация. Более сложный вариант - рисовать как в компьютерных играх чуть ли не трассировкой лучей: на какой координате (и соответственно цвету пикселя) каждого элемента соответствует каждый пиксель экрана. Такой способ более плавный, но гораздо более сложный и затратный по скорости. В совсем мощных контроллерах - по крайней мере если на плате установлено очень много оперативки - можно уже пользоваться способом jcxz - выделить огромный буфер, отрисовать в него все, потом разом выплюнуть на дисплей. . Но по-хорошему, повторяю, не стоит идти на поводу моды и маркетологов: интерфейс в первую очередь должен быть удобным, что подразумевает наличие механических элементов управления и своего индикатора на каждый контролируемый параметр. |
Автор: | Eddy_Em [ Вс апр 04, 2021 10:24:42 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Да не нужен там такой огромный буфер! Разделить экран на спрайты 8х8 для цвета, понадобится не более 10 байт на спрайт, т.е. в 6.4 раза меньше, чем надо для попиксельного отображения. Правда, это все равно много. |
Автор: | COKPOWEHEU [ Вс апр 04, 2021 15:30:00 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Для обычных применений - разумеется не нужен. Осталось донести эту мысль до jcxz. Достаточно, как я и описал, по очереди вывести все что нужно - фон, элементы управления и т.д. Ну мигнет оно при первой отрисовке, ну и что. Но не забывайте о мощных системах, где уже полноценный процессор и полноценная ОС используется. Впрочем, там и полноценные графические библиотеки доступны. Ну хотя бы framebuffer / X11. |
Автор: | jcxz [ Вс апр 04, 2021 23:07:06 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Объем памяти 20480, чуть ли не вдвое меньше. Где 20480??? В STM32F469? Что за бред? Откройте мануал на него - прочитайте сколько там ОЗУ.Вижу что вам очень хочется спорить, так что готовы нести любую чушь лишь бы спорить.... Добавлено after 1 minute 18 seconds: Для обычных применений - разумеется не нужен. Осталось донести эту мысль до jcxz. Донесите лучше мануал на STM32F469 до себя, чтобы не нести всякую ахинею.Эксперд млин.... |
Автор: | COKPOWEHEU [ Вс апр 04, 2021 23:55:05 ] |
Заголовок сообщения: | Re: STM32 разработка GUI |
Цитата: Где 20480??? В STM32F469? Нет, конечно. В stm32f103, мы же про него говорим.
|
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |