Реализация меню на си

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37

Сообщение krolaka »

нужно реализовать меню для avr для дисплея от s65 много пересмотрел исходников но так и ничего не понял как зделать.
вот приблизительно такой структуры
главное меню
-------------------
-Пункт 1
--подменю1
--подменю2
-Пункт 2
--подменю1
--подменю2
--подменю3
--подменю4
-Пункт 3
--подменю1
--подменю2
--подменю3

пишу я ето в иаре и мог бы сделать на ифах или case но в атмеге8 и так немного места.. подкажыте где смотреть
Изображение
Контактная информация:
Реклама
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

Я сделал на структуре- примерно так-

Код: Выделить всё

 eeprom struct{
  char podmenu_1;      
  char podmenu_2;      
  char podmenu_3;     
  char podmenu_4;      
  char podmenu_5;    
  }punkt[3];
обращение к ячейке меню так-

Код: Выделить всё

 punkt[1].podmenu_1;
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37

Сообщение krolaka »

ххмммм а что тогда значит punkt[3]; ?
я так понимаю ето только структура.. но можна бы привести чуть подробный пример? :)
Изображение
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18857
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

krolaka, введите в Google слова TUI+AVR и смотрите третью ссылку :) надеюсь, разберетесь...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

Пример- переключение по пунктам меню-

Код: Выделить всё

#define kn1 !PINA.0
char x;
if(kn1){x++; if(x==4)x=1;}
punkt[x].podmenu_2=10;
Реклама
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Вт авг 19, 2008 23:39:59
Откуда: г.Смоленск

Сообщение Saadov »

Для CVAvr посмотри здесь
http://electronix.ru/forum/index.php?sh ... 0меню&st=0

Но исходники от ARV рулят, респект ему...
Реклама
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Saadov писал(а):Для CVAvr посмотри здесь
http://electronix.ru/forum/index.php?sh ... 0меню&st=0

Но исходники от ARV рулят, респект ему...

Спасибо! вот исходник с ошибками кто сможет обяснить идеологию
(код на с обяснять не надо)
Вложения
menu.c
(14.09 КБ) 937 скачиваний
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Вот еще один исходник с case на с++ для pc
Вложения
LCD_MENU.CPP
(8.76 КБ) 831 скачивание
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Вт авг 19, 2008 23:39:59
Откуда: г.Смоленск

Сообщение Saadov »

FUZZY_ писал(а):
Saadov писал(а):Для CVAvr посмотри здесь
http://electronix.ru/forum/index.php?sh ... 0меню&st=0

Но исходники от ARV рулят, респект ему...

Спасибо! вот исходник с ошибками кто сможет обяснить идеологию
(код на с обяснять не надо)
Вопрос не совсем понятен, идеология заключается в том, чтобы выводить меню на двухстрочный дисплей, подменю и выполнять определенные функции при выделении каких либо пунктов.
По ссылку выше все было разжевано до мельчайших кусочков, и ошибки разобраны до рабочего кода.
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Saadov писал(а):
FUZZY_ писал(а):
Спасибо! вот исходник с ошибками кто сможет обяснить идеологию
(код на с обяснять не надо)
Вопрос не совсем понятен, идеология заключается в том, чтобы выводить меню на двухстрочный дисплей, подменю и выполнять определенные функции при выделении каких либо пунктов.
По ссылку выше все было разжевано до мельчайших кусочков, и ошибки разобраны до рабочего кода.


Вопрос не правильно задан

При компилировании программы структуры где храняться в стеке или памяти (вопрос об использовании new malloc для создания структур в памяти и delete при освобождении - быстродействие теряется не очеть зато эффективное использование памяти)
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18857
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

FUZZY_ писал(а):При компилировании программы структуры где храняться в стеке или памяти (вопрос об использовании new malloc для создания структур в памяти и delete при освобождении - быстродействие теряется не очеть зато эффективное использование памяти)
какие там еще new и malloc ?! для микроконтроллеров типа AVR с небольшим объемом ОЗУ единственный разумный способ - это статическое хранение всех систем меню в памяти программ как констант! и никакого освобождения само собой. любая попытка "сэкономить" таким образом обернется удвоением требуемой памяти (одна копия строки в памяти программ, вторая в ОЗУ). это неразумно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

ARV писал(а):
FUZZY_ писал(а):При компилировании программы структуры где храняться в стеке или памяти (вопрос об использовании new malloc для создания структур в памяти и delete при освобождении - быстродействие теряется не очеть зато эффективное использование памяти)
какие там еще new и malloc ?! для микроконтроллеров типа AVR с небольшим объемом ОЗУ единственный разумный способ - это статическое хранение всех систем меню в памяти программ как констант! и никакого освобождения само собой. любая попытка "сэкономить" таким образом обернется удвоением требуемой памяти (одна копия строки в памяти программ, вторая в ОЗУ). это неразумно.

А подключение внешней памяти. (А кто сказал что только для AVR)
А какже размещение функций во внешнем озу для получения большего быстродействия для процов в 100 MHZ
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18857
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

раз у вас такое раздолье с ОЗУ и быстродействием - берите стандартную библиотеку классов на С++ и не парьте моск :))) тут все микроконтроллерщики-любители :) если у вас ARM - юзайте Linux с его прибамбасами :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

ARV писал(а):раз у вас такое раздолье с ОЗУ и быстродействием - берите стандартную библиотеку классов на С++ и не парьте моск :))) тут все микроконтроллерщики-любители :) если у вас ARM - юзайте Linux с его прибамбасами :)))
С ARM не работал - слишком дорогая игрушка

А поделки собираю так беру бросовую плату например от старого банкомата по цене 0.5$ срисовываю схему и юзаю.
Вложения
bank0.JPG
(35.31 КБ) 1146 скачиваний
Последний раз редактировалось FUZZY_ Сб янв 09, 2010 23:59:07, всего редактировалось 1 раз.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18857
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ну тогда конкретизируйте свои вопросы так, чтобы на них можно было ответить. а то сплошные загадки - то не так, это не этак, а что надо - догадайся, мол, сама :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Вт авг 19, 2008 23:39:59
Откуда: г.Смоленск

Сообщение Saadov »

А какже размещение функций во внешнем озу для получения большего быстродействия для процов в 100 MHZ
Не забывайте, что у меги время обращение к внешней памяти на 1 такт больше. В некоторых приложениях и 1 такт может сыграть свою роль)))
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Спасибо за ссылки меню все заработало.

PS есть платы от старых DVD там 16 Mb ram 8 Md FLASH
SPI bootloader 88 Mhz CPU ядро 51 16МВ video

нащет NIX -са интересные мысли прозвучали поподробнее пожалуста
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»