Комрады, всем привет. Посоветуйте какую-нить понятную статью или что-то подобное по организации меню на ардуино с LCD и энкодером. Без использования библиотек для энкодера. То что нахожу в инете, либо очень мудрёно, либо использует сторонние библиотеки и не даёт понимания.

Комментарии: 15

  1. Aleksandr

    Построение гуя требует довольно толстых абстракций, по сути, тебе придётся изучить ту или иную библиотеку (или подход), а не «меню на ардуино». Ибо его можно реализовать очень по-разному. В ардуине нет никаких базовых возможностей для.

    • Empty

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

      • Aleksandr

        Ну пусть у тебя будет список пунктов в меню в массиве, как советуют выше, а также переменная, которая хранит номер выбранного меню. В цикле теперь у тебя две чётких задачи: 1) отрисовать меню с подкрашенным выбором, 2) если получен сигнал кнопочки - изменить переменную с выбранным пунктом.

        • Empty

          и это вроде как сформулировал для себя, но как пробую реализовать, картинка не складывается

      • Aleksandr

        Поздравляю, вы программист! :) Ступайте доделывать меню! Пусть в прерывании меняется переменная с номером выбранного пункта В цикл тащить ничего не нужно В цикле останется отрисовка Каждый кадр функция отрисовки будет рисовать одно и то же меню, а потом такая рисует, хоп, а переменная-то и изменилась! Ну и нарисуется меню с уже другим выбором Кароч, раздели в своих мозгах функцию изменения некой модели по внешним сигналам (состояние меню в данном случае) и функцию рисования этой модели, которой неважно, как менялась модель, ей плевать, она просто её каждый божий кадр рисует Наверняка когнитивная проблема именно в этом, ты из обработчика нажатия кнопки как бы хочешь запустить рисование. А там нужно только модель состояния менять.

  2. Saw

    ну библиотека энкодера чуть сократит время разработки, Не понравится - перепишешь потом. А меню… в виде дерева сделай, скажем через массив

  3. Anonim

    задавай свои ответы, мы слушаем

Не нашли ответ?

Вам также может быть интересно