if(input(pin_b5)==1)
{
flag_RB4=0; //Flag de la barrera 1
if (flag_RB5==0) //
{
flag_RB5=1;
pulso_ID(2);
}
}
if(input(pin_b4)==1)
{
flag_RB5=0; //Flag de la barrera 2
if (flag_RB4==0)
{
flag_RB4=1;
pulso_ID(1);
}
}Creo que es muy sencillo, si detectas RB4 cerrado y RB5 abierto va en un sentido; si detectas RB4 abierto y RB5 cerrado va en el otro. Después de hacer cualquiera de las dos detecciones, tienes que quedar en un bucle esperando que se abran ambos.
porque no usas interrupciones, en cuando recibas el cambio de flanco de uno checas si el otro esta presionado, y asi sabes cual paso primero, es parecido a leer el sentido en un encoder
¿y colocando un retardo? ¿serviría?