Zdravim prave se chystam delat menu pro ovladani programu v procesoru pomoci maticove klavesnice 4x4. Pomoci klavesnice se budou zadavat hodnoty a vybyrat rezimy. Ale nikdy sem timto nezabival tak presne netusim jak na to poradi mi nekdo? Tusim ze se to bude delat vetvenim IF…ELSE popripade SWITCH…CASE ale uplnou jistotu v tom nemam. (Ovladat maticovou klavesnici umim) Poradi nekdo jak presne se dela slozitejsi menu ? Napr podobne strukture v prilozenem souboru.
Dalo by se to resit podobne?
[code]
char text];
DDRE=0x0F;
PORTE=0x0F;
while(1)
{
//prvni sloupec
PORTE =0b00001110;
//1
if (bit_is_clear(PINE, 4)) {
text]=“Uroven 1”;
PORTE =0b00001101;
if (bit_is_clear(PINE, 4)) {
text]=“Poduroven 1”;
};
PORTE =0b00001011;
if (bit_is_clear(PINE, 4)) {
text]=“Poduroven 2”;
};
PORTE =0b00001110;
if (bit_is_clear(PINE, 4)) {
text]=“Poduroven 3”;
};
};
//4
if (bit_is_clear(PINE, 5)) {};
//7
if (bit_is_clear(PINE, 6)) {};
//*
if (bit_is_clear(PINE, 7)) {};
//druhy sloupec
PORTE =0b00001101;
//2
if (bit_is_clear(PINE, 4)) {};
//5
if (bit_is_clear(PINE, 5)) {};
//8
if (bit_is_clear(PINE, 6)) {};
//0
if (bit_is_clear(PINE, 7)) {};
//treti sloupec
PORTE =0b00001011;
//3
if (bit_is_clear(PINE, 4)) {};
//6
if (bit_is_clear(PINE, 5)) {};
//9
if (bit_is_clear(PINE, 6)) {};
//#
if (bit_is_clear(PINE, 7)) {};
//ctvrty sloupec
PORTE =0b00000111;
//ESC
if (bit_is_clear(PINE, 4)) {};
//F1
if (bit_is_clear(PINE, 5)) {};
//F2
if (bit_is_clear(PINE, 6)) {};
//ENTER
if (bit_is_clear(PINE, 7)) {};
}[/code]
dal me napadla jeste moznost rolovat menu po displeyi pomoci 2 klaves
#define Arow_up //2 sloupec 1 radek melo by se nejak definovat ale netusim jak :(
#define Arow_down //2 sloupec 3 radek
int uroven=0;
int key;
switch (key)
{
case Arow_down: uroven+1;break;
case Arov_up: uroven-1;break;
}
IF (uroven==1){fce1();} //samozrejme s oznamenim na LCD prislusnym textem
IF (uroven==2){fce2();}
IF (uroven==3){fce3();}
IF (uroven==4){fce4();}
IF (uroven==5){fce5();}
IF (uroven==6){fce6();}
dalo by se toto pouzit?
A jeste bych se zaroven optal pokud pouzivam 2 serva a potrebuji pomoci maticove klavesnice nastavit trasu (zadat vice hodnot natoceni do pole a potom nasledne cteni) nikdy jsem s tim nedelal tak bych potreboval poradit dik moc
LCD.zip (49 KB)
LCD_MATRIX.zip (52.4 KB)
struktura menu.doc (25 KB)
struktura menu.pdf (12.2 KB)