05-25-2017 10:17 AM - editado 05-25-2017 10:20 AM
Hola!
Tengo mi programa que al presionar un boton inicia la secuencia de encender 5 leds uno a uno de un extremo al otro y de regreso.. .pero necesito que al volver presionar el boton se pause la secuencia (se quede fijo el led en el que iba la secuencia) y al volver a presionar el boton se vuelva a reanudar :
#include <16f628A.h>
#fuses NOWDT,INTRC_IO
#use delay(clock=4M)
#define ON PIN_A2 //el push buttom
int8 unid[5]={1,2,4,8,16}; // las salidas de los led 1,2,3,4 y5
int8 i;
int aiiuda=0; //la variable para ayudar a pausar
void oli(){ //mientras aiiuda es 1 va a mantener el led prendido
while(aiiuda==1){
output_b(unid[i]);
if(input(ON)==1) { aiiuda=0; } // si se presiona el boton aiiuda se hara 0, se saldra del while
}
return; //y regresara al for
}
void main(){
while(true){
if(input(ON)==1)
{
while(true){
for (i=0; i<5; i++)
{
output_b(unid[i]);
delay_ms(500);
if(aiiuda==0 && input(ON)==1) { aiiuda=1; } //presiono el boton y aiiuda se hara uno
oli(); //y luego salta al void oli
}
for (i=3; i>0; i--)
{
output_b(unid[i]);
delay_ms(500);
if(aiiuda==0 && input(ON)==1) { aiiuda=1; }
oli();
}
}
}
}
}
Pero cuando presiono el boton no se pausa y solo sigue haciendo la secuencia de los led, que hay de malo en mi codigo?, no hay errores al compilar y aqui esta mi simulación:
el 05-29-2017 12:49 PM
Hola Tscarlet,
Disculpa, que plataforma o producto de NI estás utilizando para tu implementación?
el 05-29-2017 01:06 PM