AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
27.07.2018, 23:45
|
|
Прохожий
Регистрация: 26.07.2018
Сообщений: 8
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Простое меню для LCD дисплея (2004)
Сообщение от МВА
|
А что за кнопки? Клава сканируется или кнопка подключенная к входу МК?
|
Кнопки обыкновенные тактовые, всего 6, подключены к порту В микроконтроллера Atmega328p через внутреннюю подтяжку
[HTML]DDRB = 0x00; // назначить пины кнопок на вход
PORTB = 0b00111111; // подключить внутренние подтягивающие pull-up резисторы[/HTML]
Сообщение от МВА
|
Но, если меню должно работать параллельно с программой, то тогда лучше использовать переменную статуса меню.
|
Это в моем случае, параллельно снимается температура с термопар и рассчитывается мощность подаваемая на нагреватели. Но вообще несовсем так. Эти функции вызываются когда находишься в конкретных пункте меню, допустим в главном пункте меню эти функции не нужны
Сообщение от МВА
|
ЗЫ. Я набросал алгоритм для меню работающем в своем цикле. Но, если меню должно работать параллельно с программой, то тогда лучше использовать переменную статуса меню. Где каждому пункту соответствует свой бит. И, при помощи масок легко управлять входом и выходом из любого пункта меню, подменю, под-под-...меню. А сами маски оформить в виде макросов и не будет никакой головоломки.
|
За совет спасибо, учту
Последний раз редактировалось Aliaksandr1997; 27.07.2018 в 23:52.
|
|
|
|
28.07.2018, 00:23
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,163
Сказали Спасибо 3,855 раз(а) в 2,926 сообщении(ях)
|
Re: Простое меню для LCD дисплея (2004)
Собственно сделать массив short int с длиной максимального числа уровней меню плюс 1 и хранить в [0] текущий уровень, а в остальных ячейках номер выбранного элемента уровня. [0] инкрементируется при переходе по меню на подуровни и декрементируется при возврате.
Получаются нормальные переходы по меню вперёд назад.
Для выхода из любого места в основное меню в [0] записывается 0.
Значение в [0] можно использовать как индекс текущего номера элемента меню для switch
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 28.07.2018 в 00:25.
|
|
|
|
28.07.2018, 05:51
|
|
Частый гость
Регистрация: 05.08.2006
Адрес: Абинск, Краснодарский край
Сообщений: 26
Сказал спасибо: 65
Сказали Спасибо 52 раз(а) в 16 сообщении(ях)
|
Re: Простое меню для LCD дисплея (2004)
Работающую программу покажите пожалуйста.
|
|
|
|
28.07.2018, 18:58
|
|
Прохожий
Регистрация: 26.07.2018
Сообщений: 8
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Простое меню для LCD дисплея (2004)
serg-abinsk, надеюсь вы мне. Программа написана в среде ардуино, я еще не переделывал, не было времени. Хотя идею понял.
|
|
|
Сказали "Спасибо" Aliaksandr1997
|
|
|
28.07.2018, 21:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Простое меню для LCD дисплея (2004)
стоит только правильно спросить...
древовидное меню avr
меню LCD на C
|
|
|
Эти 2 пользователя(ей) сказали Спасибо jump за это сообщение:
|
|
|
29.07.2018, 20:09
|
|
Прохожий
Регистрация: 26.07.2018
Сообщений: 8
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Простое меню для LCD дисплея (2004)
Доброго времени суток, набросал свой код для опроса 4-х кнопок на основе кода найденного в сети. Вечером проверю в симуляторе
Последний раз редактировалось Aliaksandr1997; 29.07.2018 в 20:15.
|
|
|
|
29.07.2018, 21:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,019
Сказал спасибо: 43
Сказали Спасибо 272 раз(а) в 213 сообщении(ях)
|
Re: Простое меню для LCD дисплея (2004)
Сообщение от Aliaksandr1997
|
Вечером проверю в симуляторе
|
Симулятор не позволит учесть дребезг контактов в реальных кнопках - потом возможно придётся допиливать (а то и переделывать) код для реального железа.
|
|
|
|
29.07.2018, 22:22
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 222
Сказали Спасибо 234 раз(а) в 154 сообщении(ях)
|
Re: Простое меню для LCD дисплея (2004)
Сообщение от dgrishin
|
Симулятор не позволит учесть дребезг контактов в реальных кнопках
|
все он позволяет.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:13.
|
|