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

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

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

|
Я делаю через структуры. Это удобно, если надо расширять меню и подменю. Но в контроллеры с малым объемом памяти программ и данных такое засовывать смысла нет, так как структуры скушают большой кусок памяти данных, а преобразование чисел в строки для LCD и математика займет неплохой кусок памяти программ (я говорю про Си). Поэтому для маленьких МК, наверное, лучше через switch.
|
|
|
|
|
Jan 3 2009, 09:07
|
Местный
  
Группа: Свой
Сообщений: 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;
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|