Использование и переносимость библиотеки TUI ? 31.12.2009 14:25
Репутация: 0  
Использование и переносимость библиотеки TUI на другие платформы. Библиотека не спорю хорошая но основной недостаток для адаптирования - это отсутствие алгоритма (блок схема или словесное описание ) В моем случае использование менню на других МК. "непонятность *.h файлов " хотя и с коментариями занимает очень много времени для анализа и "переработок" конкретный пример
char ReadKey(void) // возвращает код нажатой клавишиusigned char StrToLcd(char NumOfString ,char * messagge);//выводит строку на индикатор
Как использовать библиотеку в меню
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#3971
ARV(Администратор)
Администратор
Постов: 2384
В ответ на: Использование и переносимость библиотеки TUI ? 02.01.2010 20:23
Репутация: 175  
вопрос задан так, что я и не знаю, что сказать... я старался в комментариях описать все, что надо для использования библиотечки... алгоритма как такового просто нет: набор функций и структур данных. для переносимости на другие платформы надо вместо PROGMEM использовать соответствующй префикс, и, соответственно, вместо pgm_read_byte() использовать соответствуюие функции (или не использовать - это от компилятора зависит). более никаких переделок не требуется - все должно работать.
задавайте конкретный вопрос - получите конкретный ответ. на абстрактные вопросы отвечать не умею
Не стыдно не знать, стыдно не учиться
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5578
avrman(Пользователь)
Новичок
Постов: 4
В ответ на: Использование и переносимость библиотеки TUI ? 26.09.2010 23:48
Репутация: 0  
доброго времени суток, для меня эта тема новая, так что звиняйте за ламерские вопросы =) 1.Для чего эта библиотека нужна, насколько я понял по видео, для быстрого создания сложных менюшек? 2.Для какой программы предназначена эта библиотека, тоесть куда ее ставить? 3.В ваших устройствах используется похожее меню, создавали с помощью этой библиотеки, если да то можно по-подробней как именно. Пока все, но вопросов еще куча
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5579
ARV(Администратор)
Администратор
Постов: 2384
В ответ на: Использование и переносимость библиотеки TUI ? 27.09.2010 09:06
Репутация: 175  
1. да, эта библиотека нужна для упрощения жизни при разработке систем с многоуровневым меню при использовании весьма ограниченного по возможностям символьного ЖКИ с 1 или более строками. 2. эта библиотека предназначена для компилятора WinAVR: просто скопируйте ее файлы в папку своего проекта, подключите хидеры и используйте - пример, если я не ошибаюсь, в архиве имеется. 3. в проекте "многоканальный таймер" я не использовал эту систему меню, лепил, как мог - и вы бы видели получившийся код! именно муки подобного творчества сподвигли меня на разработку TUI.
Не стыдно не знать, стыдно не учиться
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5753
Леонид(Пользователь)
Новичок
Постов: 5
В ответ на: Использование и переносимость библиотеки TUI ? 02.11.2010 17:01
Репутация: 0  
Здравствуйте, ARV. Пытаюсь портировать Ваш вариант TUI на компилятор ССS для PIC контроллеров. В файле mmenu.c в функциях
в разделе декларации локальных переменных есть запись: 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
В ответ на: Использование и переносимость библиотеки TUI ? 02.11.2010 19:48
Репутация: 175  
понимать это так: переменная ev имеет тип EVENT, т.е. может принимать одно из значений EV_NONE, EV_PREV и т.д. вообще говоря, это не совсем стандартно для Си - контроль перечислений характерен для С++, однако avr-gcc эту возможность поддерживает - я и воспользовался.
Не стыдно не знать, стыдно не учиться
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5758
Леонид(Пользователь)
Новичок
Постов: 5
В ответ на: Использование и переносимость библиотеки TUI ? 02.11.2010 20:37
Репутация: 0  
В таком случае можно было бы вместо
ev = get_event(); // получаем событие
написать
EVENT = get_event(); // получаем событие?
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5759
ARV(Администратор)
Администратор
Постов: 2384
В ответ на: Использование и переносимость библиотеки TUI ? 02.11.2010 20:54
Репутация: 175  
написать можно все, что угодно, но будет ли это иметь смысл? будет ли это правильным? EVENT - это ТИП ДАННЫХ. тип - штука абстрактная, не материальная, ему не может присваиваться значение. ТИП - это ХАРАКТЕРИСТИКА, она определяет поведение объекта, а не наоборот.
Не стыдно не знать, стыдно не учиться
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5764
Леонид(Пользователь)
Новичок
Постов: 5
В ответ на: Использование и переносимость библиотеки TUI ? 03.11.2010 20:39
Репутация: 0  
Ну да, ведь EVENT здесь - это тип данных! Пардон. Спасибо.
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#5768
Леонид(Пользователь)
Новичок
Постов: 5
В ответ на: Использование и переносимость библиотеки TUI ? 04.11.2010 20:44
/// макрос для описания пункта-опции: 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.?
Спасибо.
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.