Stránka 1 z 2

LCD menu

Napsal: 08 bře 2010, 21:21
od frontm4n
Zdravim... potreboval bych poradit jak udelat viceurovnove menu do LCD..
Mam ATmega16 s LCD16x02...

mam 3 tlacitka: 2 pro rolovani a jedno pro potvrzeni

MENUA
- MENUa -> (-MENU1-MENU2-MENU3)
- MENUb -> (-MENU1-MENU2)
- MENUc
- MENUd

MENUB
- MENUa -> (-MENU1)
- MENUb
- MENUc

Poradil by mi nekdo jak na to... 1 urovnove menu zvladnu....ale dal uz nevim jak to pak delat abych prechazel do tech dalsich menu...
Nevim jake na to pouzit smycky a jestli to mam umistit primo do nekonecne smycky.... Pres preruseni to delat nechci, protoze chci ty menu prolezt na zacatku a pak se provedenejaky ukol a pak to muze bezet cele znova.... Snad to nekdo pochopi :P

Napsal: 08 bře 2010, 22:29
od procesor
Kua,... nerozumiem. Implementuj MS Okná, a je to,.... aj bez prerušení :wink:

Napsal: 08 bře 2010, 23:31
od Bernard
Když to nebude v přerušení, musí být vše v hlavní smyčce. Asi bych vnořoval příkazy

Kód: Vybrat vše

switch (menuL1)
{case 1: switch (menuL2)
             {
             case 1:
             case 2:

             }
 case 2:

}

aby zrcadlili požadovanou strukturu víceúrovňového menu.

Napsal: 09 bře 2010, 10:12
od ZdenekHQ
Jak píše Bernard - zvolíš si např. proměnnou Menu a popř. Submenu, tam si uložíš číslo zvoleného menu (tlačítka použiješ jako UP,DOWN a ENTER) a v dalším "kole" programu skočíš na výpis a funkce daného menu. Je to pakárna, končí to tak, že samotný soft má 50 řádků a obsluha menu 500 i více. Obsluha tlačítek může být společná, jen ti chybí ještě MENU/EXIT či něco podobného.

Napsal: 09 bře 2010, 10:44
od Andrea
Nebo se dá to menu udělat podobně jako adresářová struktura na disku. Pak se všechna menu i submenu obsluhují stejně.

Napsal: 09 bře 2010, 10:51
od frontm4n
Andrea píše:Nebo se dá to menu udělat podobně jako adresářová struktura na disku. Pak se všechna menu i submenu obsluhují stejně.


muzes to prosimte trochu vic rozvezt jak na to .... jestli je to lepsi nez to delat pres ty switche? treba i kousek kodu...

Napsal: 09 bře 2010, 11:07
od Andrea
Každé menu nebo submenu by byl seznam položek, položka by byla dlouhá třeba 8 bytů (aby se daly snadno procházet) a měla by například následující strukturu:

2 byty - typ položky (konec menu / menu / číselná položka / ON-OFF přepínač / číselná položka s omezeným rozsahem / .....)
2 byty - pointer na ASCIIZ název položky
2 byty - pointer na data položky nebo pointer na seznam položek submenu pokud je položka typu menu
2 byte - třeba omezení rozsahu číselné položky
(Poslední dvě položky můžou být v jednoduchých případech přímo data položky, pokud je menu v RAM paměti)

První položka by byla vždy typu menu a obsahovala by pointer na předchozí menu nebo pointer sama na sebe v případě hlavního menu. Zda by se i tato položka zobrazovala v menu např. jako šipka nahoru nebo <zpět> nebo by byla skrytá a aktivovala se např. stiskem Esc záleží už na konkrétní implementaci. Poslední položka v menu by byla typu konec menu.

K tomu by byly dvě proměnné - pointer na seznam položek aktuálního menu a číslo aktuální položky v menu.

No a obsluha takové struktury je už snad jasná né? :wink:

Napsal: 09 bře 2010, 13:44
od piitr
Kdyby to někomu nebylo snad úplně jasné, i když je to trivialita, sesmolil jsem takový malý mustr. Ladil jsem to na PC pod Widlema, ale určitě to půjde upravit.

Napsal: 09 bře 2010, 20:57
od frontm4n
diky za cenne rady...
...jeste bych se chtel zeptat jestli nevite o nejakem programu... ktery by takove menu dokazal sam generovat... cetl sem v jedne knizce od Matouska o tzv. LCD_TOOL, ale ten program sem nenasel....urcite by to usnadnilo praci

ale jinak dekuji vsem za prispevky

Napsal: 09 bře 2010, 22:31
od Bernard
Kdysi dávno se mi jeden programátor svěřil, že on by spíš použil zubní kartáček svého kolegy než kus jeho kódu. Éra těchto hrdých umělců nenávratně skončila, a i můj syn mi říká: "Když mám něco vyřešit, tak se nejdřív rozhlídnu, jestli to už někdo navyřešil.". Asi to má tak být, v zájmu rychlého pokroku.
frontm4ne, určitě nejdřív hledej LCD_TOOLs! :wink:

Napsal: 09 bře 2010, 22:48
od rnbw
Dobry programator pouzije overenu funkcnu kniznicu a nebude znovu vynachadzat koleso. To znovuvynajdene koleso totiz byva hranate.

Napsal: 09 bře 2010, 23:27
od Bernard
Jistě, vždyť netvrdím nic jiného. Ale upřímně, rnbw, nepřipadají ti všechna ta dnešní kola tak děsně fádní? :)

Napsal: 10 bře 2010, 08:35
od piitr
Co znamená "generovat menu"? Co by měl být vstup toho generování?

Napsal: 10 bře 2010, 12:46
od piitr
Bernard píše:"Když mám něco vyřešit, tak se nejdřív rozhlídnu, jestli to už někdo navyřešil.". Asi to má tak být, v zájmu rychlého pokroku.
Ono záleží asi taky trochu na tom, jestli hledám jinde kvůli lenosti a snaze o standardizaci, nebo prostě nevím, jak bych to řešil sám. V tom druhém případě bych nějaký rychlý pokrok moc neočekával.

Napsal: 10 bře 2010, 13:04
od frontm4n
piitr píše:Co znamená "generovat menu"? Co by měl být vstup toho generování?


tohle sem nasel v jedne knizce, ale nikde na netu sem podobny program nenasel...