Site Loader

Реализация меню на switch конструкции. Практический пример

   Макет с микроконтроллером ATmega8535 со всей обвязкой, с присоединенным экранчиком, четырьмя кнопками (Up, Down, Enter, Cancel) и двумя светодиодами. Схему можно посмотреть здесь.

Кнопки имеют следующие функции:
Up – переместиться вверх по меню
Down – переместиться вниз по меню
Enter —  войти в пункт меню/ выполнить действие
Cancel – выйти из пункта меню

Структура меню имеет следующий вид.

 

   В первом уровне осуществляется выбор светодиода, во втором выбор действия над ним. Каждый пункт меню имеет свой номер. Я сначала пронумеровал пункты первого уровня, затем второго – это не принципиально, но так удобнее расписывать дальнейший алгоритм.

 

 

   В таблице ниже расписаны переходы и действия, выполняемые при нажатии кнопок в конкретных пунктах меню.

 

   Каждая строка таблицы представляет собой одну ветвь switch конструкции.

Серым цветом я пометил строки, в которых ничего не происходит – состояние не меняется, никакие подпрограммы не вызываются. В проекте я не стал их удалять для наглядности и просто закомментировал соответствующие строчки.

Проект состоит из следующий файлов.
menu1.asm – главный файл программы, к нему подключаются все остальные.
lcd.asm – содержит библиотеку подпрограмм для вывода на жки
lcd_user.asm – содержит подпрограммы вывода строк меню на жки
menu.asm – содержит макрос case и обработчики всех четырех кнопок
buttons.asm – инициализация и опрос кнопок
timers.asm – содержит подпрограмму инициализации и обработчик прерывания

led.asm – содержит подпрограммы управления светодиодами

   Логика работы программы проста как три копейки. В начале программы располагается таблица векторов прерываний, а за ней, после метки Reset, секция инициализации. Здесь мы инициализируем все, что нам потребуется для работы — стек, порты ввода/вывода, переменные в ОЗУ, жк экран, таймер Т0.

   Далее идет цикл Main в котором микроконтроллер без конца опрашивает кнопочный буфер. По сигналу прерывания таймера Т0 запускается подпрограмма DebriefButtons, которая осуществляет опрос кнопок. Внутри подпрограммы организована защита от дребезга. Если какая-то из кнопок будет нажата в течение 10-ти прерываний – ее номер помещается в буфер.

   В цикле Main расположен код диспетчера – он запускается, только если кнопочный буфер содержит номер одной из 4-ех кнопок. Диспетчер вызывает для каждой кнопки соответствующую подпрограмму-обработчик. Обработчики кнопок описаны в файле menu.asm и логику их работы мы подробно рассматривали в предыдущей статье.

   Вот собственно и все. По тексту программы расставлены дополнительные комментарии, надеюсь, разберетесь.

Преимущества данного метода:

  • простота реализации
  • наглядность
  • возможность расширения


Недостатки:

  • большой объем кода
  • медленная скорость выполнения

   Скорость выполнения ограничена тем, что поиск нужной ветви обработчика осуществляется последовательным перебором. Можно прикинуть, сколько времени будет занимать обход всего обработчика, если в меню будет 100 пунктов.  

    cpi        — 1 такт
    brne     — 1 такт без перехода и 2 такта с переходом

   Итого – 300 тактов. При частоте микроконтроллера 16МГц – 300 тактов это – 18,75 мкс. Много это или мало? Смотря, для какого приложения. Как мне кажется —  программа меню быстрой реакции не требует, потому что ввод данных пользователем и вывод на экран осуществляется довольно медленно.

И напоследок

  • Пунктам меню лучше давать символические имена. Это более наглядно.
  • Вместо одной подпрограммы в ветви switch`а я бы рекомендовал использовать две. Одна для работы с экраном, а вторая для каких-нибудь дополнительных действий.

Схему можно посмотреть здесь. Файлы проекта здесь.

{jcomments off}

 

Персональный сайт — ST7735 и Меню

Меню сайта
Статистика

Онлайн всего: 1

Гостей: 1

Пользователей: 0

Форма входа

Организация меню для микроконтроллера, на основе MICRO-MENU V2.

Всем привет! Решил выложить свою реализацию меню. Изначально писалось для STM32, поэтому в исходниках есть переключение на AVR и STM32. За основу взял проект MICRO-MENU V2 (C) Dean Camera, 2012.

На следующем видео пример использования «типовых функций», для которых нужно только написать функцию инициализации параметров и выбрать один из «типовых» видов отображения.

Как добавить новый шрифт сгенерированный в CXFontGenerator 3.

Как добавить новый шрифт сгенерированный в TheDotFactory-0.1.4.

 

 

Работа меню организована через вызов функций по указателю.

На этой картинке, попытка объяснить, как это выглядит в моей реализации.

Скачать проект.

Календарь

«  Декабрь 2022  »
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
262728293031

Друзья сайта
  • Создать сайт
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Все проекты компании
  • Как получить доступ к меню настроек Denon?

    Операции меню

    1. Нажмите MAIN на пульте дистанционного управления, чтобы установить рабочую зону на MAIN ZONE. Кнопка ГЛАВНАЯ горит.
    2. Нажмите НАСТРОЙКА. Меню отображается на экране телевизора.
    3. Нажмите ENTER, чтобы ввести настройку. Чтобы вернуться к предыдущему пункту, нажмите НАЗАД. Выйдя из меню, нажмите SETUP, пока отображается меню.

    Что такое меню Denon Smart?

    Эту функцию можно использовать для настройки параметров данного аппарата, выбора источника входного сигнала и установки станций тюнера и Интернет-радио с помощью пульта дистанционного управления телевизора . Включите функцию управления HDMI данного устройства и телевизора. соединять.

    Как мне управлять ресивером Denon?

    Приложение Denon Remote Control для A/V-ресиверов и музыкальных систем

    Как настроить быстрый выбор Denon?

    Как настроить кнопки быстрого выбора?

    1. Используйте ручку выбора источника для выбора любого источника входного сигнала.
    2. Нажмите и удерживайте одну из кнопок быстрого выбора в течение двух секунд. Выбранный источник будет сохранен в папке быстрого выбора.

    Содержание страницы

    1

    Как сбросить настройки ресивера Denon?

    Как сбросить настройки ресивера DENON A/V

    Как подключить ресивер Denon к телевизору?

    Как получить звук ТВ через AV-ресивер Denon с (ARC …

    Как запрограммировать пульт Denon на телевизор?

    Нажмите и удерживайте кнопку источника входного сигнала, для которого вы хотите зарегистрировать предустановленный код, и SETUP до тех пор, пока индикаторы DEV, TV и AVR не начнут мигать зеленым цветом Введите номер предустановки (5 цифр), указанный для устройства в таблице предустановленных кодов, с помощью цифровых кнопок (0–9).) на пульте дистанционного управления.

    Какое приложение лучше всего подходит для ресивера Denon?

    DeRemote — Управляйте вашим Denon или Marantz. DeRemote — это приложение для iPhone/iPad для удаленного управления ресивером Denon, подключенным к локальной сети. Он предназначен для повседневного использования и позволяет управлять питанием, громкостью, выбором источника, настройками радио, источниками USB/Интернета и режимом объемного звучания.

    Что такое быстрый выбор Denon?

    Такие настройки, как источник входного сигнала, уровень громкости и режим звука, можно зарегистрировать для кнопок БЫСТРЫЙ ВЫБОР 1–4. Вы можете просто нажать одну из зарегистрированных кнопок БЫСТРОГО ВЫБОРА при последующем воспроизведении до перейти к группе сохраненных настроек в пакете .

    Почему мой ресивер Denon мигает красным?

    Красное мигание вообще означает режим «защиты» . Это случай, когда обнаружена проблема, и устройство выключается, чтобы предотвратить дальнейшее повреждение ресивера или динамиков.

    Как обновить Denon AVR?

    Если AVR необходимо обновить, следуйте инструкциям в меню… Чтобы узнать, установлена ​​ли на вашем AVR последняя версия прошивки:

    1. Включите AVR.
    2. Нажмите кнопку «Настройка» на пульте дистанционного управления, чтобы получить доступ к меню настройки.
    3. Выберите «Общие» в меню.
    4. Затем выберите «Прошивка».
    5. Выберите «Проверить наличие обновлений» в меню «Прошивка».

    Как сбросить настройки Denon AVR 391?

    НАЗАД ИНФОРМАЦИЯ ПИТАНИЕ При выключенном питании нажмите и удерживайте кнопки, пока не отобразится «ИНИЦИАЛИЗИРОВАНО» . (Настройки установки установщика не инициализируются.) TUNER PRESET CH- TUNER PRESET CH+ POWER При выключенном питании нажимайте и удерживайте кнопки, пока не отобразится надпись «INITIALIZED».

    Как подключить ресивер Denon к телевизору без HDMI?

    Как подключить телевизор к ресиверу без HDMI? Вы можете использовать любые аудиокабели RCA, композитный видеокабель, компонентный видеокабель RCA с 5 кабелями или преобразователь HDMI, соответствующий имеющемуся у вас варианту ввода .

    Как подключить ресивер к телевизору?

    Как подключить ресивер к телевизору?

    1. Подключите кабель HDMI к портам HDMI с маркировкой ARC или порту, указанному в руководстве, который поддерживает ARC.
    2. Установите для динамиков аудиосистему. Приведенные ниже шаги являются примером для Android TV или Google TV.
    3. Включите параметр «Контроль по HDMI» как на телевизоре, так и на ресивере или системе домашнего кинотеатра.

    Почему HDMI ARC не работает?

    Очистите кэш и удалите данные на устройстве Android TV . Выполните сброс питания на телевизоре и аудиосистеме: выключите телевизор и аудиосистему. Отсоедините шнуры питания (сетевой шнур) и кабель HDMI от телевизора и аудиосистемы.

    Является ли пульт Denon универсальным?

    Описание товара

    Недорогой и хороший универсальный пульт .

    Какой код универсального пульта?

    4 digit codes for GE Universal remote controls (DVD Players)

    Brand 4 Digit Code
    PACIFIC 0446
    PHILIPS 0398 0408 0423 0755 0979 0981 0980 0456 0458 0969
    PHILIPS-MAGNAVOX 0398 0408 0423 0979 0980
    PIONEER 0403 0404 0976 0977 0968 0909 1084

    How do I control my Denon receiver without a remote?

    Вы можете использовать «Denon Remote control app» для сетевых приемников Denon, если ваш телефон/планшет и ресивер подключены к одному и тому же WLAN-маршрутизатору . Загрузите приложение Denon на свой смартфон или планшет и используйте его вместо пульта дистанционного управления. Примечание. Модели без сетевого интерфейса не поддерживаются.

    Есть ли приложение Denon?

    Встречайте версию 3 приложения Denon Remote App ! Это переработанное приложение для iPhone и iPad предоставит вам беспрецедентный уровень управления и контроля над вашими сетевыми устройствами серии Denon ’11/’12/’13/X и новым A/V-ресивером или музыкальной системой 2014 года.

    Что такое приложение Denon?

    Встречайте приложение Denon Remote для Android! Это новое приложение предоставит вам беспрецедентный уровень управления и контроля над вашим сетевым A/V-ресивером Denon или музыкальными системами, модели 2012 года или более поздние . Управляйте основными функциями вашего продукта Denon с помощью выбора питания, громкости, входа и режима объемного звучания.

    Как добавить ресивер Denon в приложение?

    Новое приложение Denon Remote 2016

    Нам Сан-Привет — https://finddiffer.

    com/

    Привет, меня зовут Нам Сан-Привет. Мое имя означает: «Один с радостным поведением». Я корейский студент и автор FindDiffer.com. Я провожу все свое время либо пишу, либо учусь. Я люблю узнавать что-то новое, и думаю, именно поэтому мне так нравится писать — это способ узнать больше об окружающем мире.

    Merge pull request #449 from per1234/unomini-menu-location · arduino/ArduinoCore-avr@2cebe62 · GitHub

    {{ message }}

    ардуино / ArduinoCore-avr Общественный

    • Уведомления
    • Вилка 924
    • Звезда 891

    alexxlab

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *