Главная arrow Форум  
12.12.2019 г.
Главная
Проекты
Статьи
Начинающим
Архив новостей
Ссылки
Контакты
Поиск
Файлы
Форум
Карта сайта
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Поддержи наш сайт!
Через WebMoney

 R785211844650
 Z210696637574
 E368177590409

Форум ARV Research
Добро пожаловать, Гость
Пожалуйста Вход или Регистрация.
Забыли пароль?
Использование и переносимость библиотеки TUI ? (1 просматривает)
_GEN_GOTOBOTTOM Ответить

TOPIC: Использование и переносимость библиотеки TUI ?

#3965
FUZZY_ (Пользователь)
Новичок
Постов: 35
graphgraph
Использование и переносимость библиотеки TUI ? 31.12.2009 14:25 Репутация: 0  
Использование и переносимость библиотеки TUI на другие платформы.
Библиотека не спорю хорошая но основной недостаток для адаптирования - это отсутствие алгоритма (блок схема или словесное описание )
В моем случае использование менню на других МК.
"непонятность *.h файлов " хотя и с коментариями занимает очень много времени для анализа и "переработок"
конкретный пример

#define sub_menu_1 40
#define sub_menu_2 30
#define sub_menu_3 65
#define sub_menu_4 72
#define sub_menu_5 244

char flash *menu_1[sub_menu_1]={"1...", ....,"sub_menu_1..."};
char flash *menu_2[sub_menu_2]={"1...", ....,"sub_menu_2..."};
char flash *menu_3[sub_menu_3]={"1...", ....,"sub_menu_3..."};
char flash *menu_4[sub_menu_4]={"1...", ....,"sub_menu_4..."};
char flash *menu_1[sub_menu_5]={"1...", ....,"sub_menu_5..."};

char ReadKey(void) // возвращает код нажатой клавишиusigned char StrToLcd(char NumOfString ,char * messagge);//выводит строку на индикатор

Как использовать библиотеку в меню
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#3971
ARV (Администратор)
Администратор
Постов: 2384
graph
В ответ на: Использование и переносимость библиотеки TUI ? 02.01.2010 20:23 Репутация: 175  
вопрос задан так, что я и не знаю, что сказать...
я старался в комментариях описать все, что надо для использования библиотечки... алгоритма как такового просто нет: набор функций и структур данных. для переносимости на другие платформы надо вместо PROGMEM использовать соответствующй префикс, и, соответственно, вместо pgm_read_byte() использовать соответствуюие функции (или не использовать - это от компилятора зависит). более никаких переделок не требуется - все должно работать.

задавайте конкретный вопрос - получите конкретный ответ. на абстрактные вопросы отвечать не умею
Не стыдно не знать, стыдно не учиться
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5578
avrman (Пользователь)
Новичок
Постов: 4
graphgraph
В ответ на: Использование и переносимость библиотеки TUI ? 26.09.2010 23:48 Репутация: 0  
доброго времени суток, для меня эта тема новая, так что звиняйте за ламерские вопросы =) 1.Для чего эта библиотека нужна, насколько я понял по видео, для быстрого создания сложных менюшек? 2.Для какой программы предназначена эта библиотека, тоесть куда ее ставить? 3.В ваших устройствах используется похожее меню, создавали с помощью этой библиотеки, если да то можно по-подробней как именно. Пока все, но вопросов еще куча
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5579
ARV (Администратор)
Администратор
Постов: 2384
graph
В ответ на: Использование и переносимость библиотеки TUI ? 27.09.2010 09:06 Репутация: 175  
1. да, эта библиотека нужна для упрощения жизни при разработке систем с многоуровневым меню при использовании весьма ограниченного по возможностям символьного ЖКИ с 1 или более строками.
2. эта библиотека предназначена для компилятора WinAVR: просто скопируйте ее файлы в папку своего проекта, подключите хидеры и используйте - пример, если я не ошибаюсь, в архиве имеется.
3. в проекте "многоканальный таймер" я не использовал эту систему меню, лепил, как мог - и вы бы видели получившийся код! именно муки подобного творчества сподвигли меня на разработку TUI.
Не стыдно не знать, стыдно не учиться
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5753
Леонид (Пользователь)
Новичок
Постов: 5
graphgraph
В ответ на: Использование и переносимость библиотеки TUI ? 02.11.2010 17:01 Репутация: 0  
Здравствуйте, ARV.
Пытаюсь портировать Ваш вариант TUI на компилятор ССS для PIC контроллеров.
В файле mmenu.c в функциях

uint8_t do_menu2(t_menu *m, uint8_t cnt)
uint8_t do_menu1(t_menu *m, uint8_t cnt)

в разделе декларации локальных переменных есть запись:
EVENT ev;.

В файле events.h EVENT определена как:
/// определение типа событий
typedef enum{
EV_NONE = 0, /// нет события
EV_PREV = 1, /// предыдущий
EV_NEXT = 2, /// следующий
EV_ENTER = 3, /// ввод, выбор
EV_ESCAPE = 4 /// отмена, выход
} EVENT;


Как понимать запись:
EVENT ev;?

Спасибо.
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5757
ARV (Администратор)
Администратор
Постов: 2384
graph
В ответ на: Использование и переносимость библиотеки TUI ? 02.11.2010 19:48 Репутация: 175  
понимать это так: переменная ev имеет тип EVENT, т.е. может принимать одно из значений EV_NONE, EV_PREV и т.д.
вообще говоря, это не совсем стандартно для Си - контроль перечислений характерен для С++, однако avr-gcc эту возможность поддерживает - я и воспользовался.
Не стыдно не знать, стыдно не учиться
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5758
Леонид (Пользователь)
Новичок
Постов: 5
graphgraph
В ответ на: Использование и переносимость библиотеки TUI ? 02.11.2010 20:37 Репутация: 0  
В таком случае можно было бы вместо

ev = get_event(); // получаем событие

написать

EVENT = get_event(); // получаем событие?
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5759
ARV (Администратор)
Администратор
Постов: 2384
graph
В ответ на: Использование и переносимость библиотеки TUI ? 02.11.2010 20:54 Репутация: 175  
написать можно все, что угодно, но будет ли это иметь смысл? будет ли это правильным?
EVENT - это ТИП ДАННЫХ. тип - штука абстрактная, не материальная, ему не может присваиваться значение. ТИП - это ХАРАКТЕРИСТИКА, она определяет поведение объекта, а не наоборот.
Не стыдно не знать, стыдно не учиться
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5764
Леонид (Пользователь)
Новичок
Постов: 5
graphgraph
В ответ на: Использование и переносимость библиотеки TUI ? 03.11.2010 20:39 Репутация: 0  
Ну да, ведь EVENT здесь - это тип данных!
Пардон.
Спасибо.
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5768
Леонид (Пользователь)
Новичок
Постов: 5
graphgraph
В ответ на: Использование и переносимость библиотеки TUI ? 04.11.2010 20:44 Репутация: 0  
Уважаемый AVR.
Поясните, пожалуйста, синтаксис написания макросов:
Code:

  /// макрос для описания пункта-опции: f - указатель на функцию, d - указатель на данные, о -  вспомогательный байт #define item_opt(f, d, o)    {    \     .id M_OPTMENU.            \     .item.omi.get_text f.        \     .item.omi.data d.             \     .item.omi.optid o} /// макрос для описания пункта-субменю: t - текст, s - указатель на подменю #define item_sub(t, s)        {    \     .id M_SUBMENU.             \     .item.smi.text t.         \     .item.smi.sub_cnt sizeof(s)/sizeof(t_menu).\     .item.smi.subm s} /// макрос для описания обычного пункта: t - текст, v - возвращаемое число #define item_sim(t, v)     {    \      .id M_SUBMENU v.         \      .item.smi.text t.         \      .item.smi.sub_cnt 0.        \      .item.smi.subm NULL}



Что означают точки в записях:
.id = M_SUBMENU.
.item.smi.text = t.?

Спасибо.
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
_GEN_GOTOTOP Ответить
© Copyright 2007 Best of Joomla, Работает на FireBoardполучить последние сообщения прямо на Ваш рабочий стол