Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Pausar ecuencia de LEDS

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: Simulacion

 

0 kudos
Mensaje 1 de 3
2.554 Vistas

Hola Tscarlet,

 

Disculpa, que plataforma o producto de NI estás utilizando para tu implementación?

0 kudos
Mensaje 2 de 3
2.501 Vistas

Hola Tscarlet

 

Podrías adjuntar el Vi en el que actualmente estás trabajando? Nos ayudaría a comprender mejor tu problema y a encontrar más rápido una solución.

 

Saludos

0 kudos
Mensaje 3 de 3
2.497 Vistas