| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Реализация на меню http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=2452 |
Страница 1 от 1 |
| Автор: | Filo [ Чет Юни 01, 2006 1:01 pm ] |
| Заглавие: | Реализация на меню |
Чудейки се как да оптимизирам меню което ще правя ми дойде следната идея. Да си направя два масива. Единия масив ще съдържа името на всяка позиция от менюто, а другия масив ще съдържа указател за обработка на съответната позиция. Така сменяйки позицията хем ще сменям лесно индикацията, хем ще извиквам лесно функцията за обработка. Как реализирате вие тези неща. Аз от 1 ден се чудя как да оптимизирам това меню че ми е малко кът паметта. |
|
| Автор: | valioman [ Чет Юни 01, 2006 1:19 pm ] | |||||||||
| Заглавие: | Re: Реализация на меню | |||||||||
Колко ти е паметта и с какъв компилатор работиш и с какъв професор? Питам те за да пробвам конкретен случай А и горе долу какво меню искаш ? |
||||||||||
| Автор: | asp [ Чет Юни 01, 2006 4:17 pm ] |
| Заглавие: | |
Ами и аз правих меню и също като теб подходих с масив за текста от менюто и структура описваща характеристиките на менюто. Разделих менюто на подменюта с сходни характеристики всяко с свой масив за текст и своя стр за управление. Така при натиснат бутон за движение в менюто функцията която го поддържа променя структурата характеризираща менюто и в последствие вика друга функция която да рефрешне дисплея с промененото меню. В последствие анализирах менюта написани от по опитни спецове и установих 4е самото меню се прави като функция в процеса на изпълнение на която се изобразява екранният текст с указател към който се добавя отместване в зависимост от езика който е избран. Натискането на бутоните се очаква а не се рефрешва дисплеят при натиснат бутеон. Този подход ме се стори коренно различен от моя но и двата подхода работят. Имам недоказано предчувствие /поради недостатъчно време за проби и анализи/, че вторият подход е по прост откъм програмна реализация. Първият подход е по внедрим в операционна система. Това са си мои невинни разсъждения. Надявамсе някой да ги изкоментира. |
|
| Автор: | Filo [ Чет Юни 01, 2006 5:03 pm ] |
| Заглавие: | Re: Реализация на меню |
[quote="valioman"][/quote] Пиша на CodeVision професора ми е Мега8. Менюто е просто 7 функции 2 от които са с подменюта от по 5 функции. |
|
| Автор: | Filo [ Съб Юни 24, 2006 10:37 am ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Възобнових работа по менюто. И имам една много странна ситуация. Едно и също нещо написано по два начина се държи малко различно и не мога да си обясня защо така. Идеята е че това е функция която се изпълнява докато не се натисне бутон 3. Бутоните се четът на таймерно прекъсване на всеки 0.5 мс. Първи начин. Работи според изискванията но не ми харесва как е написан.
Втори начин. Харесва ми как е написан но трябва да натискам бутон3 по няколко пъти докато го хване.
|
|||||||||||||||||||
| Автор: | syrax [ Съб Сеп 09, 2006 11:56 am ] | |||||||||
| Заглавие: | ||||||||||
и аз тука сам се задълбал в едни менюта но открих цаката пускам ви пример работи на 6 на мен специално ми трябваше малко време да схвана алгоритъма това е целия код който намерих /водят го "simple menu"/ надявам се да ви свърши работа
|
||||||||||
| Автор: | Predator_MF [ Съб Сеп 09, 2006 3:46 pm ] | |||||||||
| Заглавие: | ||||||||||
В едно от устройствата си доста си играх да реализирам меню, опитах се да го направя максимално просто за използване, малко като обем и в същото време достатъчно бързо, бях малко ограничен откъм компилатора (CCS), но ето как съм го реализирал:
|
||||||||||
| Автор: | MYXATA [ Пон Сеп 11, 2006 10:39 am ] |
| Заглавие: | |
тази организация на менюта е добра когато имаш малко RAM и много FLASH/EEPROM на разположение. Явно натам си се запутил |
|
| Автор: | Cekins [ Вто Сеп 12, 2006 10:04 pm ] |
| Заглавие: | |
Идеята с указателите е най-умна според мен. И аз така съм си изпълнил едно меню. Плюс 3 байта контролни - какво прави реда, ако има за редактиране кое да редактира, какъв тип променлива е и т.н. Обаче за да го измисля структурно ми отне 1 седмица. Нещо подобно на това което syrax е покзал в примерчето. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|