PDA

Visualizza la versione completa : [C] come fare un "loop" per menu


Omar2
23-12-2004, 15:50
Ciao,

allora io ho un problema, sto scrivendo un programmino in C per il pic interfacciato ad un display, devo fargli fare un menu con le voci che scorrono, ci sono due pulsanti un di UP scorre la voce avanti, tasto down scorre la voce indietro.

quindi, mettiamo di avere la variabile UP che vale 1 quando il testo up č premuto che incrementa una variabile, che ha un limite minimo di O e un limite massimo di 255, di massimo 4 volte.
abbiamo la variabile down che quando premo il testo down vale 1 e decrementa il registro citato sopra, come faccio a fare questo, con un codice abbastanza breve?
io ho scritto questo... ma devo trovare un modo pių spiccio


void MENU (void) {

NUM_MENU = 1;

while (1) {

if (TUP == 0) {
NUM_MENU++;
if (NUM_MENU > 2) { NUM_MENU = 1;}
delay_ms(100);
}

VISUALIZZA_VOCE_MENU();

if (TDOWN == 0) {
NUM_MENU--;
if (NUM_MENU < 1 || NUM_MENU > 2) { NUM_MENU = 2; }
delay_ms(100);
}
}
}

pprllo
23-12-2004, 16:26
La cosa pių breve che mi viene in mente:


void MENU (void) {

NUM_MENU = 1;

while (1) {

if (NUM_MENU += TUP - TDOWN > 2) NUM_MENU = 1;
if (NUM_MENU < 1) NUM_MENU = 2;
VISUALIZZA_VOCE_MENU();
if (TUP || TDOWN) delay_ms(100);
}
}

Loading