| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Софтуерни бутони - как? http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=9812 |
Страница 1 от 1 |
| Автор: | Instinct [ Нед Яну 22, 2012 1:06 pm ] |
| Заглавие: | Софтуерни бутони - как? |
Здравейте, Опитвам се да си направя нещо като GSM - меню. Тоест имам 4 бутона, едно LCD и един pic18f4550. Иска ми се да разбера каква е логиката и като цяло алгоритъма с който да накарам на дисплея да ми излизат различни опции. Съответно с единия бутон (нарочен за "избор") да влизам в дадена опция, оттам със същите бутони да мога да прецъквам новото меню и тнт. Ако някой има обяснение на човешки език, моля да споделя. А и още нещо - езикът за програмиране ще е С. Всякакви идеи, обяснения и примери са добре дошли |
|
| Автор: | amdatlon [ Нед Яну 22, 2012 2:24 pm ] |
| Заглавие: | Re: Софтуерни бутони - как? |
Ами не знам по прицип как ги правят професионалистите, но имам скалъпено едно меню което ми върши работа : viewtopic.php?f=7&t=7692 |
|
| Автор: | Cekins [ Нед Яну 22, 2012 8:13 pm ] |
| Заглавие: | Re: Софтуерни бутони - как? |
За съжаление ще трябва сам да си изградиш концепция за менютата. Колкото по-универсално толкова по добре. Примерно аз го правя с индекси. Всяко меню има индекс. Всяко подменю - подиндекс. Всеки индек/подиндекс и т.н. указва следващото и предното меню в дървото. Самите надписи ги слагам във флаша подредени на по един ред и т.н. както ми пасва на ситуацията и ги чета от там при нужда и според индекса. После ако има стойности за редактиране пак използвам миндекси за да знам коя точно стойност се редактира и къде трябва да се запише после. Интерфейса винаги е бил най-сложното нещо. Съвременните компютри станаха толкова мощни, не защото има нужда от такава изчислителна мощ за оснвните задачи, а защото имат нужда от красотийки и глезотийки. |
|
| Автор: | ToHu [ Вто Яну 24, 2012 11:35 pm ] |
| Заглавие: | Re: Софтуерни бутони - как? |
Твоя въпрос ми се струва изпреварва доста времето си. Струва ми се че не си много наясно с микроконтролерите, по добре започни с бутон и светодиод, научи се да отчиташ кога е натиснат, пък после и да управляваш LCD-то и чак тогава задавай такива въпроси, ако намериш за нужно да ги задаваш, защото не е важно как ще го организирап софтуерно, това е въпрос на решение, просто за конкретна цел или по сложно подобно на това което предложи Cekins. |
|
| Автор: | Cekins [ Сря Яну 25, 2012 10:20 am ] |
| Заглавие: | Re: Софтуерни бутони - как? |
Като го правя просто - после губя дни да добавям нещо. Като го правя сложно губя дни да го направя, ама после лесно се променя и добавя. За да се получи елегантно трябва да има ясно изразена структура. Над този проблем винаги съм губил най-много време от дивелъпмънта на което и да е устройство. Мога да те посъветвам да процедираш така : изключваш компютъра и вземаш един лист. Нарисуваш си цялото дърво със всички менюта и подменюта. Задаваш им индекси и т.н. После го мислиш как може да се реализира в софтуера. Чак тогава сядаш да го разписваш. При мен действа - като го видя нарисувано и започват да ми се раждат идеите. Е, някой път ми се раждат и без рисунки, ама това е много рядко. |
|
| Автор: | Instinct [ Сря Яну 25, 2012 8:26 pm ] |
| Заглавие: | Re: Софтуерни бутони - как? |
Благодарности за насоките на всички. Нова съм в програмирането на С , а май и на микроконтролерите като цяло. Иначе светодиода и бутона го минах, със "debounce"-инга и тнт. Като казваш "индекси", да си призная не ми прояснява много картинката, но предполагам още имам за четене от дебелата книжка за програмирането |
|
| Автор: | Cekins [ Сря Яну 25, 2012 11:30 pm ] |
| Заглавие: | 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 ... Аз също си включвам и брой на редове в даденото меню, дали има променлива на даден ред, коя е променливата, дали може да се редактира, от какъв тип е променливата, в какви граници и с каква стъпка може да се редактира. Така информацията за един ред ми е доста повече от текста, обаче е гъвкаво и така може да се структурира много лесно голямо дърво. А после лесно се добавят и променят неща По този начин имаш и лесни указатели към всеки ред - как ще си ги организираш в програмата си е въпрос на вкус. Това е само леко побутване |
|
| Автор: | Instinct [ Вто Яну 31, 2012 8:00 pm ] |
| Заглавие: | Re: Софтуерни бутони - как? |
Супер, схванах идеята! Малко тия индекси и пойнтери не са ми ясни, но пак съм доволна. Ще ги разбера и тях някак |
|
| Автор: | Cekins [ Вто Яну 31, 2012 8:35 pm ] |
| Заглавие: | Re: Софтуерни бутони - как? |
Ами то в случая даже не става въпрос за поинтер-и а за обикновен масив от променливи подредени по подходящ начин. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|