|
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 619
|
|
Делаю меню на LCD CX6512.12.2015, 20:32. Показов 39290. Ответов 54
Метки нет (Все метки)
Заимел 5 штук дисплеев cx65. таки освоил как его подключать и даже вывел тестовую программу. и даже связал всё это удовольствие с RTOS
теперь у меня на него грандиозные планы: хочу сделать меню древовидной структуры. то есть как в телефоне список пунктов и подпунктов и изменение параметров . клавиатура 4х4 на тактовых кнопках (будет второй вариант на основе capsims, но это дело ближнего будущего) дело в том что С++ я только недавно начал осваивать. как сделать примерный алгоритм работы с меню, его прорисовкой, и всем прочим... кто может помочь библиотеками, направлением куда рыть, какие запросы гуглить? буду благодарен рабочими примерами....
0
|
|
| 12.12.2015, 20:32 | |
|
Ответы с готовыми решениями:
54
LCD Siemens CX65 Меню на LCD Меню lcd stm32f429i |
|
0 / 0 / 0
Регистрация: 28.01.2012
Сообщений: 499
|
|
| 05.01.2016, 02:44 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 619
|
|
| 05.01.2016, 10:42 | |
|
а есть третий вариант: завести глобальную переменную где хранится текущая страница. при прорисовке сткрок идёт сравнение текущей локальной переменной с глобадбной переменной текущей страници. если НЕРАВНО то чистим экран и присваиваем глабальной переменной значение локальной.
//очистка экрана если происходит смена страницы. if (MENU_Page_Current != MENU_previous_page) { MENU_previous_page = MENU_Page_Current; fill_ssreen(0xFFFF); } конечно в лоб. но мерцает только при перелистывании. но не мазохизм со строками
0
|
|
|
0 / 0 / 0
Регистрация: 28.01.2012
Сообщений: 499
|
|
| 05.01.2016, 19:29 | |
|
А в чем разница переписывать весь экран или оставшиеся строки?
По-моему второй вариант требует меньше времени. Другое дело, если дисплей поддерживает комманду очистки экрана. Думаю, это было бы идеальным случаем. :)
0
|
|
|
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 619
|
||
| 07.01.2016, 16:22 | ||
переписать экран - одна команда и одно условие. пересписывать строки и символы в строке (если новая строка короче старой то "огрызки" старой будут правее новой) - это два цикла (символы и строки) . получается полигон из n ног на m пуль. вообще - страдаю изобретением велосипедов... но интересно
0
|
||
|
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 619
|
||
| 07.01.2016, 19:01 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 619
|
|||
| 07.01.2016, 19:48 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 28.01.2012
Сообщений: 499
|
||
| 07.01.2016, 22:50 | ||
Или имеется ввиду одна процедура алгоритма управляющего МК, при которой МК прет в дисплей 100500 нулевых байтов?
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
| 09.01.2016, 14:06 | |
|
Ух. Работа автора - типичный пример как не нужно делать. Сначала программируем потом думаем что именно хотим получить. Я уж молчу о простой алгоритмической базе.
0
|
|
|
0 / 0 / 0
Регистрация: 11.10.2013
Сообщений: 326
|
|
| 10.01.2016, 03:08 | |
|
Вообще из своего опыта работы и переписывания (дописывания) готового проекта под новый тип дисплея могу посоветовать следующее.
1) Отложить железо в сторону. 2) Взять лист буниги и карандаш. 3) Набросать эскизы страниц дисплея с менюшками, как бы хотелось чтобы это выглядело. 4) Посмотреть как это стыкуется с возможностями дисплея. 5) Начать писать менюшку и проверять в железе. Это позволит сэкономить кучу времени.
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
|
||
| 10.01.2016, 03:17 | ||
для пунктов 4,5 можно использовать чужой мозг за деньги
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
| 10.01.2016, 22:57 | |
|
Все навигации для маленьких экранов уже давно придуманы. никому не нужно 150 пунктов в ряд. Это бред полнейший. Если много настроек то все они должны быть сгруппированы логически. А листать корневой уровень влево-вправо это бред. Вообще первый уровень меню и другие вложенности не должны превышать 10-12 пунктов. Если сделать страницы, то в итоге пользователь запутается где он находится - в подменю или же просто на какой-то странице.
Вообщем, в любом случае перед тем как кодить нужно накидать концепцию и можно вынести на обсуждение. А закодить потом будет намного легче.
0
|
|
|
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
|
| 14.01.2016, 00:57 | |
|
Miko32, assembler - https://www.youtube.com/watch?v=SYzqYTsX3gc.
0
|
|
|
0 / 0 / 0
Регистрация: 28.01.2012
Сообщений: 499
|
|
| 14.01.2016, 01:24 | |
|
Недурно! Интересно, сколько памяти это занимает?
Что мне не понравилось - тормозное "перемигивание" выбранного пункта меню. Видимо МК тут загружен до предела. За тормознутость интерфейса сомневаюсь. Хотя могу и ошибиться - с графическими дисплеями дела еще не имел.
0
|
|
|
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
||
| 15.01.2016, 19:12 | ||
[31.39 Кб]
0
|
||
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
|||
| 16.01.2016, 00:12 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
|
| 16.01.2016, 10:15 | |
|
ShodS прав. )
А если в двух словах, то это одна увесистая процедура с множеством параметров, которая многократно, рекурсивно вызывает сама себя с сохранением в стеке указателя на элемент структуры на эти параметры и текущего состояния, применяя параметры подменю нижнего уровня. При выходе процесс обратный. Среди параметров ширина окна, со строкой прокрутки или без, с заголовком верхнего уровня или без, координаты окна, с дополнительным окном параметров или без, элементы меню из FLASH/EEPROM/ROM и т.д.
0
|
|
|
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
||
| 16.01.2016, 19:42 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 619
|
||||
| 18.01.2016, 02:26 | ||||
|
ОДнако, доброго времени суток!
спешу доложить о результатах трудов что я наделал. что есть сейчас в проекте: RTOS. примитивная работа с экраном cx65 на чипе L2F50 (строки, очистка экрана, немного цветов.) пока псевдоменю. реализована навигация по папкам. мои "фишки": гибкость отображения элементов меню в той или иной папке независимо от того сколько в папке элементов. элементы будут показаны постранично. лёгкость добавления элемента в структуру меню: обозначить тип, папку в которой будет логично смотрется, задать параметры и сделать +1 к дефайну количества "файлов" - элементов в структуре меню. что осталось сделать: конфигурационные строки и запуск приложений. собственно то ради чего всё это и задумывается. по поводу критики - принимаю и аргументирую
причём я вопросы начинаю завадавать только после того как несколько дней самостоятельного мозгования проблемы.
есть 4 устройства. устройство 1 - 2 настройки. устройство 2 - 20 настроек. устройство 3 - 8 настроек. устройство 4 - 50 настроек. значит будет 4 папки в корневом каталоге: папка1 с двумя настройками первого устройства папка2 с двадцатью настройками второго устройства папка3 с восемью настройками третьего устройства папка4 с пятьюдесятью настройками четвёртого устройства. но вот незадача... на экранчике можно показать только 8(восемь) строк в один момент времени максимум. и всё финиш. что делать? плодить ещё подпапки? зачем, если логически настройки итак уже собраны каждая в свою кучку(папку) поэтому я и сделал постраничное изображение. при этом в папке может быть от 1 до 255 элементов. значит страниц может быть от 1 до n элементов/ m строк на экране. всё настраивается. и процедура прорисовки сама считает с какой строки по какую рисовать в данный момент. вот видео как работает http://www.youtube.com/watch?v=w2a-AIhhP2k исходник прикладываю [78.28 Кб]
0
|
||||
|
0 / 0 / 0
Регистрация: 05.10.2007
Сообщений: 498
|
|
| 18.01.2016, 10:43 | |
|
Я год назад делал нечто подобное: пульт управления несколькими устройствами с отличающимся функционалом. Поскольку устройства были близки по функционалу, то я сделал меню по запросу. Пульт получает от устройства ID и список возможных регулировок. В зависимости от этого и реализовывалось меню. Потратил я на это довольно много времени, но теперь мне не нужно переписывать программу пульта для управления новым устройством с новым функционалом. Общаются они по двухстороннему однопроводному уарту, так что всё подключение - стерео мини джек.
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
|
|
| 18.01.2016, 13:16 | |
|
Мне кажется проще добавить в устройство BT / BLE / WiFi адаптер и на любом индроиде / Chrome сделать меню.
Произвольной красоты и без глазонапрягов и геморроя.
0
|
|
| 18.01.2016, 13:16 | |
|
Помогаю со студенческими работами здесь
40
Реализация древовидного меню в LCD на МК Управление навигацией меню LCD с ИК-пульта Создание меню для LCD на основе micromenu Нужны советы по реализации меню на LCD и Atmega8 Делаю главное меню в шапке сайта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|