Отговори на тема  [ 9 мнения ] 
Софтуерни бутони - как? 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Сеп 28, 2009 1:46 pm
Мнения: 10
Мнение Софтуерни бутони - как?
Здравейте,
Опитвам се да си направя нещо като GSM - меню. Тоест имам 4 бутона, едно LCD и един pic18f4550. Иска ми се да разбера каква е логиката и като цяло алгоритъма с който да накарам на дисплея да ми излизат различни опции. Съответно с единия бутон (нарочен за "избор") да влизам в дадена опция, оттам със същите бутони да мога да прецъквам новото меню и тнт. Ако някой има обяснение на човешки език, моля да споделя. А и още нещо - езикът за програмиране ще е С. Всякакви идеи, обяснения и примери са добре дошли :D


Нед Яну 22, 2012 1:06 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение Re: Софтуерни бутони - как?
Ами не знам по прицип как ги правят професионалистите, но имам скалъпено едно меню което ми върши работа :
viewtopic.php?f=7&t=7692


Нед Яну 22, 2012 2:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Софтуерни бутони - как?
За съжаление ще трябва сам да си изградиш концепция за менютата. Колкото по-универсално толкова по добре. Примерно аз го правя с индекси. Всяко меню има индекс. Всяко подменю - подиндекс. Всеки индек/подиндекс и т.н. указва следващото и предното меню в дървото. Самите надписи ги слагам във флаша подредени на по един ред и т.н. както ми пасва на ситуацията и ги чета от там при нужда и според индекса. После ако има стойности за редактиране пак използвам миндекси за да знам коя точно стойност се редактира и къде трябва да се запише после.

Интерфейса винаги е бил най-сложното нещо. Съвременните компютри станаха толкова мощни, не защото има нужда от такава изчислителна мощ за оснвните задачи, а защото имат нужда от красотийки и глезотийки.


Нед Яну 22, 2012 8:13 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Софтуерни бутони - как?
Твоя въпрос ми се струва изпреварва доста времето си. Струва ми се че не си много наясно с микроконтролерите, по добре започни с бутон и светодиод, научи се да отчиташ кога е натиснат, пък после и да управляваш LCD-то и чак тогава задавай такива въпроси, ако намериш за нужно да ги задаваш, защото не е важно как ще го организирап софтуерно, това е въпрос на решение, просто за конкретна цел или по сложно подобно на това което предложи Cekins.


Вто Яну 24, 2012 11:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Софтуерни бутони - как?
Като го правя просто - после губя дни да добавям нещо. Като го правя сложно губя дни да го направя, ама после лесно се променя и добавя. За да се получи елегантно трябва да има ясно изразена структура. Над този проблем винаги съм губил най-много време от дивелъпмънта на което и да е устройство.

Мога да те посъветвам да процедираш така : изключваш компютъра и вземаш един лист. Нарисуваш си цялото дърво със всички менюта и подменюта. Задаваш им индекси и т.н. После го мислиш как може да се реализира в софтуера. Чак тогава сядаш да го разписваш. При мен действа - като го видя нарисувано и започват да ми се раждат идеите. Е, някой път ми се раждат и без рисунки, ама това е много рядко.


Сря Яну 25, 2012 10:20 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Сеп 28, 2009 1:46 pm
Мнения: 10
Мнение Re: Софтуерни бутони - как?
Благодарности за насоките на всички.
Нова съм в програмирането на С , а май и на микроконтролерите като цяло. Иначе светодиода и бутона го минах, със "debounce"-инга и тнт. Като казваш "индекси", да си призная не ми прояснява много картинката, но предполагам още имам за четене от дебелата книжка за програмирането :) Та дано някой ден взема, че го направ това меню!


Сря Яну 25, 2012 8:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Софтуерни бутони - как?
Мммдобре. Обяснявам...

Значи имаш едно главно меню с 4 реда да кажем.
Имаш един група променливи да кажем така:
0,1,2,3,4,5. Така... нулата ти означава главното меню и ще ти укаже къде да се върне от него - в случая някакъв основен екран примерно

1 ти е индекса на текущото (главно) меню
2 ти указва първо меню, като тази променлива се явява указател към първото подменю и т.н.

Някъде си следиш на кой ред си.

Да приемем че първото подменю има три подменюта. Неговите индекси ще изглеждат така
1,2,6,7,8 - 1 индекс за връщане, 2 текущо, 6,7 и 8 подменюта.
По същата логика второто подменю индексите му биха изглеждали 1,3,9,10,11,12 ...

Аз също си включвам и брой на редове в даденото меню, дали има променлива на даден ред, коя е променливата, дали може да се редактира, от какъв тип е променливата, в какви граници и с каква стъпка може да се редактира. Така информацията за един ред ми е доста повече от текста, обаче е гъвкаво и така може да се структурира много лесно голямо дърво. А после лесно се добавят и променят неща

По този начин имаш и лесни указатели към всеки ред - как ще си ги организираш в програмата си е въпрос на вкус.

Това е само леко побутване :) дано от тук насетне и на теб да ти дойдат някакви идеи. И езика е само инструмент - не е важно на какъв език пишеш - важно е да мислиш на езика на машината.


Сря Яну 25, 2012 11:30 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Сеп 28, 2009 1:46 pm
Мнения: 10
Мнение Re: Софтуерни бутони - как?
Супер, схванах идеята! Малко тия индекси и пойнтери не са ми ясни, но пак съм доволна. Ще ги разбера и тях някак :) Мерси за помощта!


Вто Яну 31, 2012 8:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Софтуерни бутони - как?
Ами то в случая даже не става въпрос за поинтер-и а за обикновен масив от променливи подредени по подходящ начин.


Вто Яну 31, 2012 8:35 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 9 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни