#define ESPERAR_QUE_ALGUNA_ENTRADA_CAMBIE_A_CERO 0
#define ESPERAR_QUE_ENTRADA_C1_REGRESE_A_1 1
#define ESPERAR_QUE_ENTRADA_C2_REGRESE_A_1 2
#define ESPERAR_QUE_ENTRADA_C3_REGRESE_A_1 3
#define ESPERAR_QUE_ENTRADA_C4_REGRESE_A_1 4
estado = ESPERAR_QUE_ALGUNA_ENTRADA_CAMBIE_A_CERO ;
switch(estado)
{
case ESPERAR_QUE_ALGUNA_ENTRADA_CAMBIE_A_CERO:
{
if (!input(pin_c1)){ delay_ms(100); output_high(pin_d1); estado=ESPERAR_QUE_ENTRADA_C1_REGRESE_A_1; } ;
if (!input(pin_c2)){ delay_ms(100); output_high(pin_d2); estado=ESPERAR_QUE_ENTRADA_C2_REGRESE_A_1; } ;
if (!input(pin_c3)){ delay_ms(100); output_high(pin_d3); estado=ESPERAR_QUE_ENTRADA_C3_REGRESE_A_1; } ;
if (!input(pin_c4)){ delay_ms(100); output_high(pin_d4); estado=ESPERAR_QUE_ENTRADA_C4_REGRESE_A_1; } ;
break;
}
case ESPERAR_QUE_ENTRADA_C1_REGRESE_A_1:
{
if (input(pin_c1)){ estado=ESPERAR_QUE_ALGUNA_ENTRADA_CAMBIE_A_CERO; output_low(pin_d1); }
break;
}
case ESPERAR_QUE_ENTRADA_C2_REGRESE_A_1:
{
if (input(pin_c2)){ estado=ESPERAR_QUE_ALGUNA_ENTRADA_CAMBIE_A_CERO; output_low(pin_d2); }
break;
}
case ESPERAR_QUE_ENTRADA_C3_REGRESE_A_1:
{
if (input(pin_c3)){ estado=ESPERAR_QUE_ALGUNA_ENTRADA_CAMBIE_A_CERO; output_low(pin_d3); }
break;
}
default:
{
if (input(pin_c4)){ estado=ESPERAR_QUE_ALGUNA_ENTRADA_CAMBIE_A_CERO; output_low(pin_d4); }
}
}