Jump to content

Search the Community

Showing results for tags 'MicroMenu'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Автомобильная электроника
    • Питание
    • Ремонт
    • Системы охраны и наблюдения. Личная безопасность
    • Роботы и модели на ДУ-управлении
    • Световые эффекты и LED
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Металлоискатели
    • Автоматика
    • Электрика
    • Промышленная электроника
    • Измерительная техника
    • Мастерская радиолюбителя
    • КВ и УКВ радиосвязь
    • Жучки
    • Сотовая связь
    • Спутниковое ТВ
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Схемотехника для профессионалов
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 1 result

  1. Поскольку кормят нас повара и санитары, решил повысить уровень обслуживания, сделав меню. 2020-05-01 21-36-46.mp4 То есть, вдохновившись всем известным MicroMenu, сделал свой вариант "библиотечки" дл создания меню в проектах на микроконтроллерах AVR. На видео показаны основные фишки моего варианта: Скроллинг меню, если на дисплее оно целиком не вмещается. Выделение активного пункта в данном случае сделано "прочеркиванием" двумя линиями, но, естественно, можно сделать, как угодно. Выполнение команд меню без завершения самого меню (с завершением тоже можно). Наличие в меню пунктов со значениями параметров. Выделенный параметр сразу может редактироваться в заданных пределах. Возможность вложенных меню. Есть еще ряд фишек, но на видео они не видны... Вот так выглядит код, создающий структуру меню, показанную на видео: // главное меню // id name parent prev next func|subm property MENU_CMD( mm_1, "BEEP", NONE, NONE, mm_2, beep); MENU_PROP(mm_2, "TEST", NONE, mm_1, mm_3, NULL, PROP_U8(u8, NOSTORE, 0, 12)); MENU_PROP(mm_3, "MOTOR", NONE, mm_2, mm_4, motor, PROP_BOOL(motor_state, NOSTORE, sf("STOP"), sf("RUN"))); MENU_SUB( mm_4, "SUBMENU", NONE, mm_3, mm_5, sm_1); MENU_PROP(mm_5, "TEMPERATURE", NONE, mm_4, mm_6, NULL, PROP_I16(vfr, NOSTORE, -20, 20)); MENU_CMD( mm_6, "LOAD", NONE, mm_5, mm_7, load); MENU_CMD( mm_7, "SAVE & EXIT", NONE, mm_6, NONE, save); // субменю MENU_CMD( sm_1, "STOP DEMO 1", mm_4, NONE, sm_2, done); MENU_CMD( sm_2, "STOP DEMO 2", mm_4, sm_1, sm_3, done); MENU_SUB( sm_3, "STOP SUB", mm_4, sm_2, NONE, ssm_1); // субменю 2 MENU_CMD(ssm_1, "SUB STOP DEMO 1", sm_3, NONE, ssm_2, done); MENU_CMD(ssm_2, "SUB STOP DEMO 2", sm_3, ssm_1, ssm_3, done); MENU_CMD(ssm_3, "SUB STOP DEMO 3", sm_3, ssm_2, NONE, done); Кто работал с MicroMenu, тому подобный способ описания структуры меню будет знаком. Как видите, главное отличие в том, что пункты имеют разный размер, т.е. количество полей разное. Это позволяет экономить память в некоторых случаях. С другой стороны, добавилась возможность добавить новое поле, которое я назвал по-русски свойством, а по-английски property. Пункты меню, имеющие такое поле, позоляют видеть значение свойства и менять его интерактивно - на видео вы это видели. Реализована поддержка следующих свойств: целое число (со знаком и без оного, 8 и 16 бит), причем число можно выводить в десятичной или шестнадцатеричной форме; булево значение (т.е. логическое) - оно отображаетс парой соответствующих строк текста; выбор одного варианта из нескольких - каждый вариант так же представляется соответствующим текстом. Относительно просто добавить поддержку и 32-битных чисел... Но надо ли? Вводить их значение при помощи кнопок "навигации" - это удовольствие не из приятных... При желании это можно реализовать по-старинке - написав свою функцию и назначив её нужному пункту меню... Таким образом, моя система меню сразу позволяет решить следующие задачи, практически всегда присутствующие в проектах на МК с ЖКИ: организовать процесс "настройки" всех параметров при помощи интуитивного меню; сохранять автоматически в EEPROM все свойства, используемые в меню, и загружать их оттуда. То есть теперь достаточно описать пункты меню вместе с соответствующими свойствами, выделить место под переменные для этих свойств (эти переменные затем использовать по назначению в программе), выделить место в EEPROM для сохранени значений этих свойств (все это указывается при создании свойства в пункте меню), и в нужный момент вызвать созданное меню на дисплей - все остальные заботы я уже решил! Думаю, многие знают, что не всегда просто решить, напрмер, интерактивную регулировку яркости подсветки дисплея. Часто делают так: в меню выбирают пункт, по активации которого выводится редактор яркости (то ли шкала, то ли число), а потом, когда ввод нового значения яркости завершен, работа с меню завершается, и задается новое значение яркости. Так вот, в моей системе яркость может меняться одновременно с изменением соответствующего свойства! На видео вы могли видеть, как включается и выключается "моторчик" - точно так же можно выполнять какую-то функцию при каждом изменении числа. То есть реализован полностью интерактивный способ изменения всех свойств! И прощайте странные цифры, обозначающие включение или отключение каких-то режимов - здравствуйте понятные слова! Надеюсь, моё меню сможет удоветворить самый изысканный вкус любого гурмана...
×
×
  • Create New...