|
Отображение меню на жк, реализация на CVAVR |
|
|
|
 |
Ответов
|
Mar 28 2006, 21:18
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Код /***************************************************** This program was produced by the CodeWizardAVR V1.24.5 Standard Automatic Program Generator © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com e-mail:office@hpinfotech.com
Project : Version : Date : 28.03.2006 Author : ps1x Company : ccc Comments:
Chip type : ATmega8 Program type : Application Clock frequency : 1,000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/
#include <mega8.h>
// Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18;PORTB #endasm #include <lcd.h> char kod; int current_menu=0; //Ïåðåìåííàÿ óêàçûâàåò íà òåêóùåå ìåíþ int current_poz=0; //Ïåðåìåííàÿ óêàçûâàåò íà òåêóùèé ïóíêò ìåíþ/ïîäìåíþ void goto_menu(void);
//Ñòðóêòóðà îïèñûâàåò ïóíêò ìåíþ typedef struct _selection { unsigned char *mas; // Óêàçàòåëü íà íàçâàíèå ïóíêòà void (*function)(void); //Óêàçàòåëü íà ôóíêöèþ âûïîëíÿþùóþñÿ ïî íàæàòèè íà enter/escape unsigned ent_f: 4; //Ôëàã âõîäà 4 áèòà - îáû÷íî ID ìåíþ â êîòîðîå íàäî âîéòè unsigned esc_f: 4; //Ôëàã âûõîäà 4 áèòà - îáû÷íî ID ìåíþ â êîòîðîå íàäî âåðíóòüñÿ }SELECTION;
//Ñòðóêòóðà îïèñûâàåò ìåíþ/ïîäìåíþ typedef struct _menu { unsigned char id; //Íîìåð ìåíþ/ïîäìåíþ unsigned char num_selections; //Êîëè÷åñòâî ïóíêòîâ äàííîãî ìåíþ/ïîäìåíþ SELECTION *m; //Óêàçàòåëü íàìàññèâ ïóíêòîâ äàííîãî ìåíþ/ïîäìåíþ }MENU;
//Íîìåðà ìåíþ/ïîäìåíþ enum __menu__id { MAIN_MENU, //Ãëàâíîå ìåíþ SETTINGS_MENU, //Ìåíþ íàñòðîåê REPORT_MENU //Ìåíþ îò÷¸òà };
//Èìåíà ïóíêòîâ unsigned char X1[]={"Ïóíêò 1"}; unsigned char X2[]={"Ïóíêò 2"}; unsigned char X3[]={"Ïóíêò 3"}; unsigned char X4[]={"Ïóíêò 4"}; unsigned char X5[]={"Ïóíêò 5"}; unsigned char X6[]={"Ïóíêò 6"}; unsigned char X7[]={"Ïóíêò 7"};
//Çàãîëîâêè ôóíêöèé void func1(void); void func2(void); void func3(void); void func4(void); void func5(void); void func6(void); void func7(void);
//Ìàññèâ õðàíèùèé ïóíêòû ãëàâíîãî ìåíþ (ñòðóêòóðà SELECTION) static SELECTION menu_[]={ {X1, func1, 0, 0}, //Ïóíêò 1 {X2, func2, 0, 0}, //Ïóíêò 2 {X3, goto_menu, SETTINGS_MENU, 0}, //Ïóíêò 3 {X4, goto_menu, REPORT_MENU, 0} //Ïóíêò 4 };
//Ìàññèâ õðàíèùèé ïóíêòû ìåíþ íàñòðîåê (ñòðóêòóðà SELECTION) static SELECTION menu_m0[]={ {X5, func5, 0, MAIN_MENU}, //Ïóíêò 1 {X6, func6, 0, MAIN_MENU}, //Ïóíêò 2 {X7, func7, 0, MAIN_MENU}, //Ïóíêò 3 } <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<--------ЗДЕСЬ РУГАЕТСЯ (invalid expression) //////////////////////////////////////////#///////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////#//#/////////////////////////////////////////////////////////////////////////// //////////////////////////////////////#//#///#//////////////////////////////////////////////////////////////////////// ////////////////////////////////////#////#////#/////////////////////////////////////////////////////////////////////// //////////////////////////////////////////#//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////#//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////#//////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////#####////////////////////////////////////////////////////////////////////////
//Ãëàâíûé ìàññèâ õðàíèò â ñåáå âñå ìåíþ/ïîäìåíþ //Âñå ìåíþ/ïîäìåíþ äîëæíû îïèñûâàòüñÿ â òàêîì æå ïîðÿäêå êàê è â enum __menu__id ... static MENU menu[] = { {MAIN_MENU, 4, menu_}, //Ìåíþ 1 {SETTINGS_MENU, 3, menu_m0} //Ìåíþ 2 };
void goto_menu(void) { switch (kod) { case 'e': {current_menu=menu[current_menu].m[current_poz].ent_f; break;};//enter case 'b': {current_menu=menu[current_menu].m[current_poz].esc_f; break;};//escape } current_poz=0; } В коде я выделил ошибку вот так "<<<<<<<<<<<-----" почему ругается?
Сообщение отредактировал ps1x - Mar 28 2006, 21:36
|
|
|
|
Сообщений в этой теме
ps1x Отображение меню на жк Mar 28 2006, 18:49 vet Не зацикливайтесь на вложенности. Пункт меню - сам... Mar 28 2006, 19:08 rezident Попробуйте так.
Отделите интерпретатор меню и соб... Mar 28 2006, 19:38 e-moe Я реализовал так:
Код//Структура описывает пункт ... Mar 28 2006, 19:57 ps1x Спасибо за ответы, сейчас буду разбираться... Mar 28 2006, 20:50 defunct Когда копируете текст с русскоязычными коментариям... Mar 28 2006, 21:28 ps1x Цитата(defunct @ Mar 29 2006, 01:28) Когд... Mar 28 2006, 21:33 defunct по конкретному коду - у Вас лишняя запятая. Mar 28 2006, 21:52 ps1x Большое спасибо!
С меня 2 пива для e-moe и одн... Mar 28 2006, 22:10 ps1x Цитата(current_poz<=0)?current_poz=menu[current... Mar 28 2006, 23:41 WHALE И я пива хочу А если серьезно,открой в хелпе Code... Mar 29 2006, 04:33 ps1x Да нет, с функциям лсд я разобрался, но вот как от... Mar 29 2006, 09:49 e-moe Выше написано:
Кодstatic SELECTION menu_m0[... Mar 29 2006, 10:11 ps1x Да, но вот как обратиться к структуре, чтоб отобра... Mar 29 2006, 10:18 demiurg1978 Как-то так:
menu.h:
CODE//=======================... Dec 5 2014, 19:30 e-moe Кодmenu[current_menu].m[current_poz... Mar 29 2006, 10:34 vet ps1x
Совет: не пожалейте времени, прочитайте какой... Mar 29 2006, 12:10 ps1x спасибо за совет, но я уже так и делаю, только уче... Mar 29 2006, 12:26 ps1x Код/**********************************************... Mar 29 2006, 14:08 e-moe может стоит без приведении к int попробовать?
Кодi... Mar 29 2006, 15:25 ps1x Цитатаможет стоит без приведении к int попробовать... Mar 29 2006, 15:52 ps1x Неужели никто на этом форуме не знает язык С??? Эт... Mar 29 2006, 20:29 prottoss Делал меню под заказ. Правда для графических диспл... Mar 30 2006, 10:47 e-moe Нашёл я проблему по которой невозможно быйти из по... Mar 31 2006, 16:00 ps1x Все получилось, хотя сначала делал вариант с пункт... Mar 31 2006, 23:36 LSerg Спасибо, сделал себе меню таким же образом. Легко ... Jan 21 2010, 04:59 ARV я тоже делал меню, правда на WinAVR. любая вложенн... Jan 22 2010, 09:00 Qwertty Цитата(ARV @ Jan 22 2010, 12:00) я тоже д... Jan 22 2010, 10:03  ARV Цитата(Qwertty @ Jan 22 2010, 13:03) Есть... Jan 22 2010, 11:20   Qwertty Цитата(ARV @ Jan 22 2010, 14:20) рекурсию... Jan 22 2010, 12:12 ARV для собственно TUI опрос кнопок без разницы но ск... Jan 22 2010, 13:19 vvkka да согласен код слишком запутаный, как то реолизов... Jan 24 2010, 08:41 ARV Цитата(vvkka @ Jan 24 2010, 11:41) да сог... Jan 25 2010, 09:16 reload Недавно переделал Micro-Menu под dsPIC (MPLAB C30 ... May 10 2010, 12:45 ps1x RE: Отображение меню на жк May 11 2010, 14:02 ut1wpr RE: Отображение меню на жк May 12 2010, 09:21  TimurArs Цитата(ut1wpr @ May 12 2010, 10:21) А теп... Mar 30 2018, 21:47 Loshara Цитата(ps1x @ May 11 2010, 17:02) Вот око... Dec 24 2012, 07:55 ChaiSER Здравствуйте! Понравилась данная реализация ме... Feb 14 2011, 12:18 Saadov Цитата1. Вывод текстовой информации на ЖКИ и выход... Feb 15 2011, 16:57 ChaiSER Цитата(Saadov @ Feb 15 2011, 19:57) В кей... Feb 15 2011, 18:11 Saadov Все названные функции для примера
Кодvvod_chisla... Feb 19 2011, 22:30 EmDMAl Разобрался с меню. Но при размещении большого коли... Nov 10 2014, 11:40 binarick Здравствуйте уважаемые
Хочу воскресить темку т.к. ... Mar 16 2015, 09:58
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|