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

 
 
> Отображение меню на жк, реализация на CVAVR
ps1x
сообщение Mar 28 2006, 18:49
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Ставлю три пива тому, кто даст мне пример (с комментариями) реализации вложенного меню для 2х строчного жк в среде CVAVR. Уже второй день бюсь ап стену, но ничего путного не выходит - то меню которое написал я, уже (недоделаное) занимает 1312 слов blink.gif . Сдается мне что это не есть гут. Но придумать ничего лучше бесконечных switch case не могу ( sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ps1x
сообщение Mar 28 2006, 21:18
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 13th August 2025 - 18:38
Рейтинг@Mail.ru


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