Pregunto otra cosa, cuando entro dentro del bucle; puedo testear el estado de los pulsadores para pasar a la siguiente rutina?
Este es la rutina de chequeo de los pulsadores:
if(testeado==0) // si la opcion seleccionada es la 0, salimos del menú
{
intf=0;
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
lcd_putc("\f");
break;
}
else if(testeado==1){menu_uno1(); lcd_putc("\f");}
else if(testeado==2){menu_dos1(); lcd_putc("\f");}
else if(testeado==3){menu_tres1(); lcd_putc("\f");}
else if(testeado==4){menu_cuatro1(); lcd_putc("\f");}
else if(testeado==5){menu_cinco1(); lcd_putc("\f");}
}
Y esto es uno de los bucles:
void menu_uno1(void)
{
// restart_wdt();
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("menu");
lcd_gotoxy(1,2);
lcd_putc("1");
while(true)
{
output_high(PIN_A0);
delay_ms(300);
output_low(PIN_A0);
output_high(PIN_A1);
delay_ms(300);
output_low(PIN_A1);
output_high(PIN_A2);
delay_ms(300);
output_low(PIN_A2);
output_high(PIN_A3);
delay_ms(300);
output_low(PIN_A3);
intf=0;
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
}
}
Lo que quiero es pasar directamente a la siguiente rutina sin tener que hacer uso de la interrupcion, ya que con esta vuelvo al menu.
Gracias por su ayuda, sin ustedes me seria imposible avanzar.