Hola edgard22, nuevamente te pido ayuda con un nuevo programa en el que intento realizar un temporizador ciclico.
Este temporizador lo divido en porcentajes, osea, si selecciono el 20% el temporizador enciende un led durante 1 minuto y parara 4 minutos entrando en un ciclo hasta una nueva selección, si selecciono 40% el led funcionara 2 minutos y parara 3 minutos entrando en un nuevo ciclo hasta una nueva selección, pudiendo crear de esta manera algunos ciclos mas con distintos porcentajes de tiempo. El problema que tengo es que mientras el temporizador se encuentra en uno de los ajustes seleccionados puedo actuar sobre el potenciomentro pero no sé como hacer para que el display muestre la nueva lectura que se ha elegido, para ver la lectura del nuevo ajuste hay que esperar a que termine el ciclo elegido.
Pongo un ejemplo a ver si me puedes orientar de como hacerlo.
Un saludo.
Hola, el problema es que una vez iniciada la demora, el programa no avanza hasta que esta finalice, para evitar esto, yo uso pausas pequeñas, por ejemplo, para demorar 10 segundos genero una demora de un valor digamos 10ms y la inserto en un lugar condicionado por el análisis del valor deseado. para lograr los diez segundos se debe pasar por el mismo sitio 1000 veces. Este proceso genera la demora deseada sin trancar el programa.
El inconveniente es que todas las demás líneas que estén en el recorrido también generan demoras que se suman a la principal, por lo que requiere ajustes para obtener cierta precisión. (Se varía el número de ciclos de ejecución en la demora de 10mS).
La otra es usar demoras basadas en interrupciones con el TMR0, pero eso ya es otro tema.
Te recomiendo leer los ejemplos de flowcode en el apartado 'Interrupts' para eso.
Acá va algo sin interrupts, este muy rudimentario ejemplo muestra una cuenta regresiva que comienza en un valor porcentual del ADC y finaliza en cero. El valor se actualiza al mover el pot.
La variable 'ciclos' determina el número de veces que se ejecutará la demora de 10mS
(La simulación no refleja el tiempo real).
Creo que el método no es tan malo, es cuestión de optimizarlo.
Saludos a todos los 'Flowcoderos'
