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

 
 
> Структура меню
sind-rom
сообщение Nov 15 2006, 17:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 21-10-06
Пользователь №: 21 540



Народ, как Вы делаете меню для своих девайсов? Интересует структура. Столкнулся с проблемой: вывод на дисплей (HD44780 совместимый) меню получается малопонятной и (главное) неприспособленный для добавления новых пунктов меню. Никогда раньше не приходилось делать меню, так что научите smile.gif Может у кого есть каки-нить наработки\библиотеки?
Заранее большое спасибо...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alux
сообщение Mar 29 2007, 10:28
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Первую ошибку можно обойти, указав размер массива Text[6] при определении Menu_Item.
А вот со второй ошибкой не могу справится. В чем же дело?
Go to the top of the page
 
+Quote Post
id_Alx
сообщение Aug 28 2007, 18:13
Сообщение #3


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

Группа: Участник
Сообщений: 79
Регистрация: 12-08-06
Из: Минск
Пользователь №: 19 504



Цитата(alux @ Mar 29 2007, 13:28) *
Первую ошибку можно обойти, указав размер массива Text[6] при определении Menu_Item.
А вот со второй ошибкой не могу справится. В чем же дело?

Для IAR получилось так...
Прикрепленные файлы
Прикрепленный файл  umenu.rar ( 1.44 килобайт ) Кол-во скачиваний: 321
 
Go to the top of the page
 
+Quote Post
alux
сообщение Sep 27 2007, 15:19
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Цитата
Для IAR получилось так...

У меня не получается вызвать меню через символические имена:
Код
void menu_Init(void)
{
  Level1Item1Sub1_Text();
  SET_MENU_WRITE_FUNC(Level1Item1Sub1_Text);
  SET_MENU(Level1Item1);
    delay_ms(1000);
    SET_MENU(PARENT);
    delay_ms(1000);
    SET_MENU(SIBLING);
    delay_ms(1000);
    SET_MENU(PREVIOUS);
    delay_ms(1000);
    SET_MENU(NEXT);
}

Если вызывать через имя меню :
Код
void menu_Init(void)
{
  Level1Item1Sub1_Text();
  SET_MENU_WRITE_FUNC(Level1Item1Sub1_Text);
  SET_MENU(Level1Item1);
    delay_ms(1000);
    SET_MENU(Level1Item2);
    delay_ms(1000);
    SET_MENU(Level1Item3);
    delay_ms(1000);
    SET_MENU(Level1Item1);
    delay_ms(1000);
    SET_MENU(Level1Item2);
}

... то все нормально, т.е. с интервалом в секунду выводятся пункты меню. В оригинальном исходнике символические имя определены так:
Код
#define PREVIOUS   *((Menu_Item*)pgm_read_word(&CurrMenuItem->Previous))
#define NEXT       *((Menu_Item*)pgm_read_word(&CurrMenuItem->Next))
#define PARENT     *((Menu_Item*)pgm_read_word(&CurrMenuItem->Parent))
#define SIBLING    *((Menu_Item*)pgm_read_word(&CurrMenuItem->Sibling))
#define ENTERFUNC  *((FuncPtr*)pgm_read_word(&CurrMenuItem->EnterFunc))
#define SELECTFUNC *((FuncPtr*)pgm_read_word(&CurrMenuItem->SelectFunc))

В исправленной версии от Id_Alx опущен знак &. Добавление & приводит к перезапуску программы. Манипуляции с размерами CSTACK(0x100), RSTACK(0x40) не помогает. В чем же дело?
Go to the top of the page
 
+Quote Post
id_Alx
сообщение Oct 2 2007, 07:19
Сообщение #5


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

Группа: Участник
Сообщений: 79
Регистрация: 12-08-06
Из: Минск
Пользователь №: 19 504



Цитата(alux @ Sep 27 2007, 18:19) *
В исправленной версии от Id_Alx опущен знак &. Добавление & приводит к перезапуску программы. Манипуляции с размерами CSTACK(0x100), RSTACK(0x40) не помогает. В чем же дело?


Вот только не надо не надо добавлять значки ("&"), смысл которых Вам, видимо, не совсем ясен, а потом жаловаться. Вероятность того, что программа заработает корректно после подобных манипуляций очень мала. Версия из моего архива не собирается или не работает после сборки? Я пользуюсь IAR 4.20A.
Go to the top of the page
 
+Quote Post
alux
сообщение Oct 3 2007, 18:53
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



У меня меню заработало. Как теперь сделать, чтобы пункты меню выводились не последовательно в одно и то же место дисплея, а отобразить на экране пункты меню одного уровня, и навигацию осуществлять либо стрелочкой, либо инверсией пунктов меню?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sind-rom   Структура меню   Nov 15 2006, 17:36
- - junoSynthesizer   присоединяюсь к вопросу. тоже только начал стряпа...   Nov 15 2006, 22:00
- - bodja74   Делал двух-координатное меню. Создаем массив перем...   Nov 15 2006, 22:37
- - SergSit   Почитай тему на этом форуме : Отображение меня на ...   Nov 16 2006, 07:03
- - _Bill   Цитата(sind-rom @ Nov 15 2006, 20:36...   Nov 16 2006, 09:28
- - zltigo   До кучи. Код//------------------------------------...   Nov 16 2006, 09:39
- - Andy_F   Например, вот так: Кодstruct menu_item { unsigned...   Nov 16 2006, 09:42
- - alux   Продолжаем разговор... Считаю, что тема организаци...   Mar 28 2007, 10:21
- - beer_warrior   ЦитатаКак прикрутить данный проект к IAR (v.4.12A)...   Mar 28 2007, 10:44
- - alux   Забыл приложить файл... Я GCC не силен. Сделал сле...   Mar 28 2007, 12:11
- - MRW   Используем это MicroMenu. Вещь просто супер. Легко...   Mar 28 2007, 14:09
- - beer_warrior   ЦитатаError[Pe146]: too many initializer values D:...   Mar 28 2007, 14:29
|- - alux   Цитата(beer_warrior @ Mar 28 2007, 14:29)...   Mar 28 2007, 18:45
|- - Dog Pawlowa   Цитата(alux @ Mar 28 2007, 18:45) Вот лис...   Mar 28 2007, 19:25
|- - alux   Цитата(Dog Pawlowa @ Mar 28 2007, 19:25) ...   Mar 28 2007, 20:01
- - MRW   // Menus define: void KeySC (void); // Прототипы ф...   Mar 28 2007, 20:38
|- - alux   По поводу Micro-Menu... При попытке вызова SET_MEN...   Aug 7 2007, 10:58
|- - IgorKossak   Цитата(alux @ Mar 29 2007, 10:28) Первую ...   Apr 1 2007, 22:10
- - Kolia   Выкладываю исходник простого и удобного меню для H...   Mar 30 2007, 13:59
- - beer_warrior   ЦитатаА вот со второй ошибкой не могу справится. В...   Mar 30 2007, 14:44
- - Яrik   Только сильно не ругайте: Решил попробывать код пр...   Jul 13 2007, 14:44
|- - IceS   Цитата(Яrik @ Jul 13 2007, 18:44) но чего...   Jul 16 2007, 21:43
- - Unknown_User   Очень интересная, а главная злободневная для меня ...   Sep 9 2007, 18:18
- - admiral   Продолжу тему. У меня возникла необходимость созда...   Apr 8 2008, 11:24
- - sKWO   Цитата(admiral @ Apr 8 2008, 14:24) Код#d...   Apr 8 2008, 12:16


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

 


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


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