Quiero hacer un menu, que tocando una tecla del teclado se obtenga datos. Seria de la siguiente manera:
Seleccione: 1.Obtain 2. Transmitir
Si seleccionas 1, aparece otro menu con 4 opciones (1.Temp 2.NCOMB 3.RPM 4.VEL)
Si seleccionas 2 tendria que aparecer en pantalla transmitiendo datos.
En el submenu de los parametros tambien tendria que haber una opcion, para volver atras.
Aqui os dejo el codigo que he probado de hacer. El problema es que cuando tecleo una tecla, no hace nada. Y todo estaba bien configurado. Anteriormente lo habia probado de hacer con if pero funciona correctamente, pero si le dabas al 1 o el 3 te realizaba siempre la misma funcion.
void main(){
//Variable de las funciones de parametros
char k;
int x;
lcd_init();
kbd_init();
port_b_pullups(TRUE);
//Mensaje de Inicio
lcd_gotoxy(4,1);
printf(lcd_putc, "BIENVENIDOS");
lcd_gotoxy(7,2);
printf(lcd_putc, "dd");
delay_ms(300);
lcd_putc('\f');
lcd_gotoxy(4,1);
printf(lcd_putc, "viernes 12");
lcd_gotoxy(4,2);
printf(lcd_putc, "abril 2015");
delay_ms(300);
lcd_putc('\f');
lcd_gotoxy(1,1);
printf(lcd_putc, "REALIZADO POR:");
lcd_gotoxy(1,2);
printf(lcd_putc, "xxx");
delay_ms(300);
lcd_putc('\f');
lcd_gotoxy(1,1);
printf(lcd_putc, "SELECCIONE:");
lcd_gotoxy(1,2);
printf(lcd_putc,"1.OBT 2.TRANS");
while(1){ //Bucle infinito siempre consulta el teclado
k=kbd_getc(); //leer el teclado
x=k-48; //Conversion numerica
switch(k){
case 1:
lcd_gotoxy(1,1);
printf(lcd_putc, "1.TEMP 2.NCOMB");
lcd_gotoxy(1,2);
printf(lcd_putc, "3.RPM 4.VEL");
delay_ms(300);
lcd_putc('\f');
switch (k){
case 1:
lcd_gotoxy(1,1);
printf(lcd_putc,"OBT.DATOS...");
NTC();
break;
case 2:
lcd_gotoxy(1,1);
printf(lcd_putc,"OBT.DATOS...");
NIVEL_COMBUSTIBLE();
break;
case 3:
lcd_gotoxy(1,1);
printf(lcd_putc,"OBT.DATOS...");
REVOLUCIONES();
break;
case 4:
lcd_gotoxy(1,1);
printf(lcd_putc,"OBT.DATOS...");
VELOCIDAD();
break;
case 5:
lcd_gotoxy(1,1);
printf(lcd_putc,"MENU PRINCIPAL");
break;
}
case 2:
lcd_gotoxy(1,1);
printf(lcd_putc,"TRANS.DATOS...");
}
}
}