ya hice la interrupcion por rb0.tengo el siguiente problema . se hace la interrupcion.para todo y enciende la luz que necesito . pero despues de un tiempo vuelve a hacer el programa principal.la idea es que no haga nada hasta que presione nuevamente el button.
Entonces pienso que lo podes hacer de 2 formas, la interrupcion y sino un simple while.
Ya que la interrupcion es para algo que debe atenderse inmediatamente, y luego volver al programa principal.
Entonces en tu interrupcion, activas una variable de 1 bit para parar el programa.
volatile int1 activo = true;
void interrupcion(void)
{
activo = false;
ouput_high(LED);
}
void main(void){
while(true)
{
if(activo)
{
output_low(PIN_B1);//piston 1
output_high(PIN_B2);//piston 2
output_high(PIN_B3);//motor
delay_ms(300);
output_low(PIN_B2);//piston 2
output_high(PIN_B1);//piston 1
output_high(PIN_B3);//motor
delay_ms(300);
}
}
}
Falta la parte de apagar el led y volver a activar el ciclo.
La otra como te digo es usar un while.
while(!input_pin(PIN_B0)); // Mientras sea 0 va a quedar encerrado en el while, cuando tenga un 1 va a salir de aca