Ayuda con switch case

Hola, estoy tratando de hacer un menu con switch case, cada ves que se pulse un pulsador incrementa o decrementa la variable y pasaria de case en case, pero no me funciona.
Aca les dejo el codigo en C:

void main(){
set_tris_b(0x03);
set_tris_d(0b11111111);
set_tris_c(0x00);
lcd_init();


while(true)
{
// if(input(PIN_C5)|| !input(PIN_C5)){
if(input(abajo)){ --modo;}
if(input(arriba)){ ++modo;}
if(modo>3) modo = 1;
if(modo>1) modo = 0;
// if (enter == 1)


switch(modo){
case 0:

break;

case 1:

break;
case 2:

break;
}}}
Gracias.
 
tal como esta tu codigo no creo que funcione en ningun compilador porque para empezar no declaraste la variable modo. Quisiera saber que tipo es (char, unsigned char, int, etc)

Supongamos que inicialmente la variable modo es 0.
luego, presionas el boton abajo y esa variable se decrementa a -1

...en el switch no tienes valores negativos!!

Otra observacion:

Cuando utilizas botones debes poner un retardo para que no afecten los rebotes.

Saludos
 
Atrás
Arriba