реклама на сайте
подробности

 
 
> Организация меню
Integral
сообщение Oct 14 2008, 21:22
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Есть екранчик на котором менюшка, перебераеться вверх/вниз, выбераеться что нужно и т.д.

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

Так вот, менюшку я сделал и все работает. Но как оказалось получилось настолько тупо что даже сам начал плутаться в програме..... очень сложно добавлять/удалять пункты меню, делать бОльшую/меньшую "глубину" меню и т.п.

Так вот, может есть какойто популярный и т.п. подход для организации таких дел? Нужно такой подход чтобы устранить проблемы которые я описал выше.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sharasir
сообщение Jan 2 2009, 01:23
Сообщение #2





Группа: Участник
Сообщений: 5
Регистрация: 2-01-09
Пользователь №: 42 879



Паяю давненько, МК начал программировать недавно, а на С вообще первый проект. Вобщем пытаюсь собрать ус-во для управления аквариумом (поддержание дневной и ночной температуры, вкл/выкл подсветки, аэратора, кормление в заданное время). Собрал на макетной плате (PIC16F628, LCD 2строки/8 символов, четыре кнопки, DS18B20, будет датчик освещенности) Вобщем не знаю как организовать меню. Сделал переменную Menu которую инкр/декр с помощью кнопок перелистывания меню а на индикатор вывожу символы сохраненные в массивах конст. через Switch(Menu). Всего 10 пунктов меню, 2 из которых еще имеют подменю. И закончилась память программ у пика ((((. 2кБ. А это только кнопки, LCD, меню и часы ). А еще нуно вставить инициализацию и обращение к DS18B20, опт. датчик и прочую математику... Может както можно организовать такое меню более щадяще для памяти программ? Обидно, с выводами МК влез, и только из-за прошивки не хочется ставить PIC16F876 (28 ног, завалялся у меня).
Go to the top of the page
 
+Quote Post
petrd
сообщение Jan 2 2009, 08:24
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012



Я делаю через структуры. Это удобно, если надо расширять меню и подменю. Но в контроллеры с малым объемом памяти программ и данных такое засовывать смысла нет, так как структуры скушают большой кусок памяти данных, а преобразование чисел в строки для LCD и математика займет неплохой кусок памяти программ (я говорю про Си). Поэтому для маленьких МК, наверное, лучше через switch.
Go to the top of the page
 
+Quote Post
DL36
сообщение Jan 3 2009, 09:07
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006



Цитата(petrd @ Jan 2 2009, 12:24) *
Я делаю через структуры. Это удобно, если надо расширять меню и подменю. Но в контроллеры с малым объемом памяти программ и данных такое засовывать смысла нет, так как структуры скушают большой кусок памяти данных, а преобразование чисел в строки для LCD и математика займет неплохой кусок памяти программ (я говорю про Си). Поэтому для маленьких МК, наверное, лучше через switch.

Удобнее через указатели. Структура одного узла.
Код
typedef struct typeMenu
{            
   const unsigned char      *Caption;         /* Pointer to caption  */
   const typeDetektHotKey   *ppFunc;           // Указатель на указатель описывающий вызывающий функцию    
   const signed char        pos;              // Смещение позиции caption относительно стандартного

   const struct typeMenu    *parent;          // Указывает на родительский узел
   const struct typeMenu    *child;           // Если есть потомок
   const struct typeMenu    *up;              // Эти два выстраивают вертикальную цепочку                                      
   const struct typeMenu    *down;
   const struct typeMenu    *left;            // Соседние ветки
   const struct typeMenu    *right;

} typeMenu;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Integral   Организация меню   Oct 14 2008, 21:22
- - zltigo   Цитата(Integral @ Oct 14 2008, 23:22) Воп...   Oct 14 2008, 21:28
- - Integral   Уж очень больно много тем нужно пересмотреть.... ...   Oct 14 2008, 21:49
- - DRUID3   А Вы ищите через google в связке с electronix.ru ....   Oct 14 2008, 21:53
- - Integral   Мне токо меню всяких модных ресторанов попадаются....   Oct 14 2008, 21:57
|- - zltigo   Цитата(Integral @ Oct 14 2008, 23:57) Мне...   Oct 14 2008, 22:02
- - BigBolt   Вот тута было http://electronix.ru/forum/index.php...   Oct 15 2008, 04:33
- - kosyak©   Когда делал девайс с клавиатуркой и текстовым ЖК.....   Oct 15 2008, 06:25
- - Integral   Всем очень благодарен за ответы. Лично мне подошё...   Oct 18 2008, 13:22
||- - _Pasha   Цитата(petrd @ Jan 2 2009, 12:24) так как...   Jan 2 2009, 10:13
|- - XVR   Цитата(Sharasir @ Jan 2 2009, 04:23) Паяю...   Jan 5 2009, 11:03
- - Sharasir   Я только начал пробовать на С. Сначала попробовал ...   Jan 2 2009, 16:50
- - rvk   Ну не знаю....2Кб это много. Очень много. Раньше н...   Jan 5 2009, 12:13
|- - A. Fig Lee   Цитата(rvk @ Jan 5 2009, 07:13) Ну не зна...   Jan 6 2009, 03:46
|- - Eddy71   Цитата(A. Fig Lee @ Jan 6 2009, 06:46) во...   Feb 11 2009, 18:27
- - _Pasha   Цитата(XVR @ Jan 5 2009, 15:03) Хм. У вас...   Jan 5 2009, 12:42
|- - petrd   Вот только сегодня обсуждали зачатки меню на струк...   Jan 5 2009, 14:07
|- - XVR   Цитата(_Pasha @ Jan 5 2009, 15:42) Стремн...   Jan 5 2009, 14:20
|- - _Pasha   Цитата(XVR @ Jan 5 2009, 18:20) Эээ, а че...   Jan 5 2009, 18:27
|- - XVR   Цитата(_Pasha @ Jan 5 2009, 21:27) Навски...   Jan 6 2009, 04:35
|- - zksystem   экономить память можно следующим способом, как это...   Jan 24 2009, 14:29
|- - chert_kol   А может стоит поставить внешнюю Flash и написать н...   Feb 1 2009, 17:24
- - INT1   Цитата(chert_kol @ Feb 1 2009, 20:24) А м...   Feb 2 2009, 04:08
- - chert_kol   Цитата(INT1 @ Feb 2 2009, 07:08) Он же пи...   Feb 4 2009, 05:17


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 18:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01455 секунд с 7
ELECTRONIX ©2004-2016