void menu()
{
int8 estado_actual,estado_siguiente;
boolean salir;
estado_actual = INICIAL;
salir = false;
while (!salir)
{
if (rastreo_teclado())
{
switch (boton)
{
case OK: // BOTON OK
if (estado_actual == INICIAL)
estado_siguiente = MENU_INSOLAR;
else if (estado_actual == MENU_INSOLAR)
estado_siguiente = MENU_PLACAFREAK;
else if (estado_actual == MENU_PLACAFREAK || estado_actual == MENU_PLACACIF || estado_actual == MENU_PLACACOVENCO || estado_actual == MENU_PLACATIPICA)
{
placa = ((int)(estado_actual/10)) - 10;
estado_siguiente = MENU_CARASUPERIOR;
}
else if (estado_actual == MENU_CARASUPERIOR || estado_actual == MENU_CARAINFERIOR || estado_actual == MENU_AMBASCARAS)
{
caras = estado_actual - 110;
estado_siguiente = MENU_CONFIRMACION;
}
else if (estado_actual == MENU_CONFIRMACION)
estado_siguiente = INSOLANDO;
else if (estado_actual == MENU_FIJARTIEMPO)
{
placa = ENCURSO;
estado_siguiente = ACCION_FIJARMINUTOS;
}
else if (estado_actual == MENU_CONFIGURACION) estado_actual = MENU_TIEMPOFREAK;
else if (estado_actual == MENU_TIEMPOFREAK || estado_actual == MENU_TIEMPOCIF || estado_actual == MENU_TIEMPOCOVENCO || estado_actual == MENU_TIEMPOTIPICO)
placa = ((int)(estado_actual/10)) - 20;
estado_siguiente = ACCION_MINUTOSPLACA;
case MENOS: // BOTON <
if (estado_actual == MENU_INSOLAR)
estado_siguiente = MENU_CONFIGURACION;
else if (estado_actual == MENU_CONFIGURACION)
estado_siguiente = MENU_INSOLAR;
else if (estado_actual == MENU_TIEMPOCIF || estado_actual == MENU_TIEMPOCOVENCO || estado_actual == MENU_TIEMPOTIPICO)
estado_siguiente = estado_actual - 10;
else if (estado_actual == MENU_TIEMPOFREAK)
estado_siguiente = MENU_TIEMPOTIPICO;
else if (estado_actual == MENU_PLACACIF || estado_actual == MENU_PLACACOVENCO || estado_actual == MENU_PLACATIPICA || estado_actual == MENU_FIJARTIEMPO)
estado_siguiente = estado_actual - 10;
else if (estado_actual == MENU_PLACAFREAK)
estado_siguiente = MENU_FIJARTIEMPO;
else if (estado_actual == MENU_CARAINFERIOR || estado_actual == MENU_AMBASCARAS)
estado_siguiente = estado_actual - 10;
else if (estado_actual == MENU_CARASUPERIOR)
estado_siguiente = MENU_AMBASCARAS;
case MAS: // BOTON >
if (estado_actual == MENU_INSOLAR)
estado_siguiente = MENU_CONFIGURACION;
else if (estado_actual == MENU_CONFIGURACION)
estado_siguiente = MENU_INSOLAR;
else if (estado_actual == MENU_TIEMPOCIF || estado_actual == MENU_TIEMPOCOVENCO || estado_actual == MENU_TIEMPOFREAK || estado_actual == MENU_TIEMPOTIPICO)
estado_siguiente = estado_actual + 10;
else if (estado_actual == MENU_FIJARTIEMPO)
estado_siguiente = MENU_TIEMPOFREAK;
else if (estado_actual == MENU_PLACACIF || estado_actual == MENU_PLACACOVENCO || estado_actual == MENU_PLACAFREAK)
estado_siguiente = estado_actual + 10;
else if (estado_actual == MENU_PLACATIPICA)
estado_siguiente = MENU_PLACAFREAK;
else if (estado_actual == MENU_CARAINFERIOR || estado_actual == MENU_CARASUPERIOR)
estado_siguiente = estado_actual + 10;
else if (estado_actual == MENU_AMBASCARAS)
estado_siguiente = MENU_CARASUPERIOR;
case NO: // BOTON NO
if (estado_actual == MENU_INSOLAR || estado_actual == MENU_CONFIGURACION)
estado_siguiente = INICIAL;
else if (estado_actual == MENU_TIEMPOFREAK || estado_actual == MENU_TIEMPOCIF || estado_actual == MENU_TIEMPOCOVENCO || estado_actual == MENU_TIEMPOTIPICO)
estado_siguiente = MENU_CONFIGURACION;
else if (estado_actual == MENU_PLACAFREAK || estado_actual == MENU_PLACACIF || estado_actual == MENU_PLACACOVENCO || estado_actual == MENU_PLACATIPICA || estado_actual == MENU_FIJARTIEMPO)
estado_siguiente = MENU_INSOLAR;
else if (estado_actual == MENU_CARASUPERIOR || estado_actual == MENU_CARAINFERIOR || estado_actual == MENU_AMBASCARAS)
estado_siguiente = MENU_PLACAFREAK;
}
estado_actual = estado_siguiente;
salir = procesa_estado(estado_actual);
}
}
}