LCD menu

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
frontm4n
Příspěvky: 62
Registrován: 15 říj 2009, 00:00

LCD menu

#1 Příspěvek 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
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#2 Příspěvek od procesor »

Kua,... nerozumiem. Implementuj MS Okná, a je to,.... aj bez prerušení :wink:
Uživatelský avatar
Bernard
Příspěvky: 3654
Registrován: 27 kvě 2005, 00:00

#3 Příspěvek 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.
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#4 Příspěvek 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.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#5 Příspěvek 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ě.
Uživatelský avatar
frontm4n
Příspěvky: 62
Registrován: 15 říj 2009, 00:00

#6 Příspěvek 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...
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#7 Příspěvek 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:
Uživatelský avatar
piitr
Příspěvky: 1003
Registrován: 19 říj 2007, 00:00
Kontaktovat uživatele:

#8 Příspěvek 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.
Přílohy
menu.c.txt
(4.31 KiB) Staženo 282 x
Uživatelský avatar
frontm4n
Příspěvky: 62
Registrován: 15 říj 2009, 00:00

#9 Příspěvek 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
Uživatelský avatar
Bernard
Příspěvky: 3654
Registrován: 27 kvě 2005, 00:00

#10 Příspěvek 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:
Uživatelský avatar
rnbw
Příspěvky: 37418
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#11 Příspěvek od rnbw »

Dobry programator pouzije overenu funkcnu kniznicu a nebude znovu vynachadzat koleso. To znovuvynajdene koleso totiz byva hranate.
Uživatelský avatar
Bernard
Příspěvky: 3654
Registrován: 27 kvě 2005, 00:00

#12 Příspěvek 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í? :)
Uživatelský avatar
piitr
Příspěvky: 1003
Registrován: 19 říj 2007, 00:00
Kontaktovat uživatele:

#13 Příspěvek od piitr »

Co znamená "generovat menu"? Co by měl být vstup toho generování?
Uživatelský avatar
piitr
Příspěvky: 1003
Registrován: 19 říj 2007, 00:00
Kontaktovat uživatele:

#14 Příspěvek 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.
Uživatelský avatar
frontm4n
Příspěvky: 62
Registrován: 15 říj 2009, 00:00

#15 Příspěvek 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...
Přílohy
program.jpg
(93.92 KiB) Staženo 197 x
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“