Всем привет!
Люди подскажите как организовать менюшку для проэкта на avr/
Хотел на switch но,всё бы ничего но вот тогда у меня кнопки всегда задействованы те
которые не должны быть задействованы. ( пременная инкрементируется,декрементируется,
умножается и делится ) Короче в любой момент нажми менюха перескакивает по разделам.
Спасибо.
Кнопки и менюшка для AVR (Atmega8)
-
aleksey chilov
- Нашел транзистор. Понюхал.
- Сообщения: 167
- Зарегистрирован: Вс мар 27, 2022 09:38:17
Кнопки и менюшка для AVR (Atmega8)
Последний раз редактировалось Аlex Вт ноя 22, 2022 23:23:32, всего редактировалось 1 раз.
Причина: Название темы
Причина: Название темы
- Реклама
Re: Помогите с кодом на си для AVR (Atmega8)
Менюшки делаются на связанных списках и указателях, с переназначением действий кнопок.
В принципе, можно не париться всей этой замороченной штукой, а организовать на тех же switch, просто введя дополнительную переменную, отвещающую за выбор действий кнопок.
В принципе, можно не париться всей этой замороченной штукой, а организовать на тех же switch, просто введя дополнительную переменную, отвещающую за выбор действий кнопок.
-
aleksey chilov
- Нашел транзистор. Понюхал.
- Сообщения: 167
- Зарегистрирован: Вс мар 27, 2022 09:38:17
Re: Помогите с кодом на си для AVR (Atmega8)
Ну дело в том что кнопки опрашиваются у меня замороченно. Там я подключал стороннюю библиотеку,
я скачивал самодельную,там она большая. Там в ней и двойной клик и долгое нажатие вобщем всё там. А в свитче просто переменная из обработчика кнопок этой же библиотеки.
Добавлено after 55 seconds:
Хотелось бы фрагмент кода,в качестве примера.
я скачивал самодельную,там она большая. Там в ней и двойной клик и долгое нажатие вобщем всё там. А в свитче просто переменная из обработчика кнопок этой же библиотеки.
Добавлено after 55 seconds:
Хотелось бы фрагмент кода,в качестве примера.
- VNS
- Говорящий с текстолитом
- Сообщения: 1627
- Зарегистрирован: Пт дек 10, 2021 12:48:46
- Откуда: Тюмень
Re: Помогите с кодом на си для AVR (Atmega8)
[uquote="aleksey chilov",url="/forum/viewtopic.php?p=4324944#p4324944"]Хотелось бы фрагмент кода,в качестве примера.[/uquote]
Кнопки подключены: Set – PD5; Up – PD6; Down – PD7.
Светодиоды 1 – PD0; 2 – PD1; 3 – PD2; 4 – PD3; 5 – PD4.
Алгоритм:
При кратковременном нажатии на кнопку Set, входим в меню, загорается светодиод 1 (путкт 1). Кратковременными нажатиями на кнопки Up или Down, перемещаемся по пунктам 1…5, о чём сигнализируют светодиоды, имитируя соответствующие пункты меню…
Повторное нажатие на кнопку Set осуществляет выход из меню - все светодиоды погашены.
Прошивка для визуальной работы: МК тактируется на заводских установках (1 МГц).
Кнопки подключены: Set – PD5; Up – PD6; Down – PD7.
Светодиоды 1 – PD0; 2 – PD1; 3 – PD2; 4 – PD3; 5 – PD4.
Алгоритм:
При кратковременном нажатии на кнопку Set, входим в меню, загорается светодиод 1 (путкт 1). Кратковременными нажатиями на кнопки Up или Down, перемещаемся по пунктам 1…5, о чём сигнализируют светодиоды, имитируя соответствующие пункты меню…
Повторное нажатие на кнопку Set осуществляет выход из меню - все светодиоды погашены.
Прошивка для визуальной работы: МК тактируется на заводских установках (1 МГц).
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: Помогите с кодом на си для AVR (Atmega8)
[uquote="MLX90640",url="/forum/viewtopic.php?p=4324931#p4324931"]...[/uquote]
Поподробнее, плиз. Мне интересно.
Для ТС. Ищи MicroMenu. Их два варианта. Исходных. Есть на easyelectronics.ru вариант.
Поподробнее, плиз. Мне интересно.
Для ТС. Ищи MicroMenu. Их два варианта. Исходных. Есть на easyelectronics.ru вариант.
Последний раз редактировалось Demiurg Ср ноя 23, 2022 18:14:56, всего редактировалось 1 раз.
- Реклама
Re: Кнопки и менюшка для AVR (Atmega8)
Думал недавно над реализацией многоуровневого меню, на коленке накидал не очень красиво, но в принципе работает.
В продакшн такой код пускать нельзя, но как proof of concept вполне.
Код сюда кидать не буду ВОТ ссылка на onlinegdb.
В продакшн такой код пускать нельзя, но как proof of concept вполне.
Код сюда кидать не буду ВОТ ссылка на onlinegdb.
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Кнопки и менюшка для AVR (Atmega8)
Одноуровневую менюшку достаточно просто сделать, я вот так делал. А вот в случае многоуровневой нужно будет придумать структуру, описывающую пункт меню, как-то так:
Если function == NULL, то submenu указывает на менюшку следующего уровня, иначе при активации этого пункта выполняется function. Если parent != NULL, то при, скажем, нажатии "влево" (либо можно автоматом первым пунктом любой менюшки писать "Up", если parent!=NULL) вызывается родительское меню.
Код: Выделить всё
typedef struct _mitem{
int (*function)();
struct _mitem *submenu;
struct _mitem *parent;
} menu_item;
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18675
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Кнопки и менюшка для AVR (Atmega8)
ну, я как бы тоже к этой теме руку приложил: https://radiokot.ru/forum/viewtopic.php ... t=FlexMenu
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!


