Easyelectronics.ru

Электроника для всех
Текущее время: 11 авг 2020, 03:37

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 15 ноя 2014, 20:21 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3679
Откуда: Новосибирск
SOVA писал(а):
Зачем что-то искать. Посмотрите внимательно в мой проект - там все переходы выставлены. Составьте картинку (хоть на листочке) переходов между пунктами меню - вам всё станет ясно. Я уже дважды рассказывал, постарайтесь понять самостоятельно.

Какой у вас дисплей? Сколько пунктов меню у вас может быть на дисплее?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 15 ноя 2014, 22:18 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 643
Откуда: Киев
2*20. У меня высвечивается по одному пункту. Во второй строке параметры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 15 ноя 2014, 22:29 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3679
Откуда: Новосибирск
SOVA писал(а):
2*20. У меня высвечивается по одному пункту. Во второй строке параметры.

Я так и думал. В начале топика ссылка на видео. Дисплей 20х4. В будущем графические дисплеи планирую применять. Пунктов может быть несколько. Поэтому нужно навигацию сделать нормальную по меню.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 16 ноя 2014, 13:21 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 643
Откуда: Киев
Для нормальной навигации нужно добавить обработку пары кнопок (вверх, назад) и всё. Опять не понимаю, зачем поиск по пунктам?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 16 ноя 2014, 18:45 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3679
Откуда: Новосибирск
SOVA писал(а):
Для нормальной навигации нужно добавить обработку пары кнопок (вверх, назад) и всё. Опять не понимаю, зачем поиск по пунктам?

У вас 2 строчный дисплей. У меня 4 строчный. Пусть будет меню такого вида:
Show

Если текст выводить в лоб, то элемент структуры menu_item Text нахрен не нужен. А я затеял возню с Micro Menu именно из-за этого элемента. И если этот элемент теперь есть, то нужно этот текст вывести. Теперь поняли меня?
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 20 ноя 2014, 21:12 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3679
Откуда: Новосибирск
Ф-ф-фу-у-у... Получилось! Собрал себе конструктор меню! Проектом занимался практически все свободное время, а его у меня было в последнее время очень мало. Порой ночами засиживался.
Получил все, что хотел.
В лоб текст выводится только в некоторых (где требуется) выбранных подпунктах меню. А уровни меню, пункты - автоматически выводятся.
Во время написания программы назрело интересное решение. Наверное вы сталкивались со следующим. Входим в меню, вываливается список пунктов меню. Выбираем какой-нибудь, входим в подпункт. А когда выходим, указатель на первом пункте. И если приходится менять несколько параметров, это бесит. Каждый раз заново выставлять указатель на нужный пункт меню. У меня это решено. Притом запоминания иерархии не потребовалось. Вся информация в структуре. Micro Menu представляет из себя связанный список структур. Вся информация в структуре.

Видео. На данный момент текущий проект в работе, поэтому меню еще не все собрал.

Ну как-то так...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 21 ноя 2014, 00:07 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 643
Откуда: Киев
Мои поздравления!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 12 май 2017, 10:47 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 795
Вот и я начал работать с микро меню.
И столкнулся с такой проблемой. Не вызывает функцию void Language (void) по указателю.
Show

Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 12 май 2017, 10:57 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3679
Откуда: Новосибирск
Вечером или в выходные спишемся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 12 май 2017, 15:26 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 795
Если написать так то вызов функции происходит. Но как тогда вызывается функция у SOVA я не понял.
Код:
void menuChange(const menuItem* NewMenu)
{
   if ((void*)NewMenu == (void*)&NULL_ENTRY)
     return;

   selectedMenuItem = (menuItem *)NewMenu;
       // selectedMenuItem = NewMenu;
       
  LCDCLEAR LCD_SetPos(0, 0); //Очистка экрана LCD
  if (Mem.EEPROMMap.language_messages != 0) //Если в настройках установлен режим русского языка
  {
   printf("%s",(char *)NewMenu->Text_RUS); 
  }
  else
  {
     printf("%s",(char *)NewMenu->Text_ENG);
  }
 
   if(NewMenu->SelectFunc != NULL_FUNC)
   SELECTFUNC();
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 12 май 2017, 18:35 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 643
Откуда: Киев
Код:
typedef void (*FuncPtr)(void);


#define SELECTFUNC   ((FuncPtr)(selectedMenuItem->SelectFunc))


#define MAKE_MENU(Name, Next, Child, Select, Enter, Text) \
   extern const menuItem   Next;               \
   extern const menuItem   Child;               \
   const menuItem         Name = {(void*)&Next,    \
      (void*)            &Child,             \
      (FuncPtr)         Select,             \
      (FuncPtr)         Enter,                \
      { Text }}



//                     NEXT,   CHILD,   SelectFunc,   EnterFunc
MAKE_MENU (m_s2i1,      m_s2i2,   m_s1i1,   NULL_FUNC,   acc_measure,   "Measure Start ");



         if (SELECTFUNC != (FuncPtr)NULL_FUNC)
         {
            SELECTFUNC();
         }

Тут все определения и кусок кода совмещены.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адаптировать Micro Menu под IAR
СообщениеДобавлено: 12 май 2017, 18:55 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3679
Откуда: Новосибирск
Лично я сделал так: Прочитал статью, названия определения взял у Sova, а проект взял оригинальный. Впоследствии уже не раз перелопатил под себя.
Show menu.h


Show menu.c


Show Модуль вывода информации - конечный автомат.


Show Массив меню


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB