Page 1 of 1

Visualización en 7 segmentos

Posted: Sat Mar 16, 2019 2:04 pm
by Fer_taca
Hola,

Como principiante que soy en Flowcode, tengo una nueva consulta para ver si me pueden ayudar.
Se trata de lo siguiente:
Estoy realizando un temporizador regresivo. La parte del ajuste del valor de la temporización y puesta en marcha creo que ya la tengo implementada, salvo depuraciones posteriores durante las pruebas. Esto lo veo visualizando los valores de las distintas variables durante la ejecución del programa.

El problema lo tengo al intentar visualizar los valores en un display (2 dígitos) de 7 segmentos. Los valores serán de un máximo de 60 y no se como poder descomponer el numero en 2 dígitos separados para visualizar cada numero en un digito. Actualmente tengo una macro que me va actualizando el valor del tiempo, este valor cuando alcanza el valor de 10, me pasa el primer digito(unidades) a 0 y me incrementa en una unidad el segundo(decenas). Ahora bien cuando sucede eso, el valor del digito de unidades ya no se vuelve a incrementar, sin embargo cuando el tiempo llega a 20, 30, 40 50 o 60 (valor máximo) el digito de las decenas si se incrementa.

¿Me pueden ayudar a solucionar esta cuestión?
Adjunto el proyecto (sin finalizar) y una imagen de la macro donde se actualizan los valores.

Muchas Gracias
F..

Re: Visualización en 7 segmentos

Posted: Sat Mar 16, 2019 3:07 pm
by medelec35
Probar diagrama de flujo adjunto


Try Attached flowchart.

Re: Visualización en 7 segmentos

Posted: Sat Mar 16, 2019 10:36 pm
by Fer_taca
Gracias por la respuesta y sobre todo por la corrección del programa.

Llevo parte de la tarde revisando los cambios que me has propuesto y sobre todo estudiando el porque y como se han realizado.
No obstante tengo una pregunta adicional, ya que todo funciona correctamente, pero detecto un pequeño defecto que no se si será por estar viendo el programa en simulación. Se trata de lo siguiente:

Una vez programado un tiempo determinado, en el display se aprecia correctamente el decremento perro cuando la cuenta llega a 0 (variable de Tiempo Total =0) el display se queda marcando el valor "01".
Creo que no debería de pasar pues según el programa cuando el tiempo total es 0 se para el programa hasta que se deshabilita el interruptor de "Start_Stop".

Otra cosa y que no tiene nada que ver con el programa en cuestion, aprovecho el post para una pregunta general: ¿en el panel de sistema no se pueden colocar etiquetas que identifiquen los elementos colcados?

Una vez mas gracias.
F.

Re: Visualización en 7 segmentos

Posted: Sun Mar 17, 2019 1:29 pm
by medelec35
Adding Labels.png
(55.27 KiB) Downloaded 4475 times
Adding Labels2.png
(11.28 KiB) Downloaded 4475 times
o
Adding Labels3.png
(56.41 KiB) Downloaded 4475 times

Re: Visualización en 7 segmentos

Posted: Sun Mar 17, 2019 7:17 pm
by Fer_taca
Gracias nuevamente por la respuesta.

Ya coloqué las etiquetas y pude corregir el que el display no se quedase marcando el valor 01 al llegar a su tiempo final.

F.

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 5:35 pm
by Fer_taca
¿Me pueden indicar si mis cálculos son correctos?
Acabo de terminar el programa de temporización descendente y antes de pasarlo al pcb quería estar seguro de que lo realizado veces esta correctamente.
Cuando lo simulo estimo que la lógica es la correcta, pero en los valores de tiempos que obtengo tengo una duda porque no son los que he diseñado, pienso que debe ser por estar en simulación y que en la realidad son correctos. Los he calculado varias y siempre me han dado los mismos.
Utilizo 2 interrupciones, una del TMR0 y otra del TMR1, agradecería que me indicasen si mis cálculos son correctos o no:
Para el TMR0:
Con un oscilador de 8MHz, oscilador interno y un prescaler de 1:128, Flowcode me dice la frecuencia de interrupción es de 61,035Hz o lo que es lo mismo 0,016384sg. Necesito obtener 60 segundos por lo que utilizo un contador de1sg por lo que cuento 61 veces esa interrupción y cuando se alcanza ese valor, incremento otra variable hasta contar otra vez 60.
Para el TMR1:
Con un oscilador de 8MHz, oscilador interno y un prescaler de 1:8, Flowcode me dice la frecuencia de interrupción es de 3,815Hz o lo que es lo mismo 0,2621234sg. Necesito obtener 12 segundos por lo que utilizo un contador hasta que cuento 458 veces esa interrupción.

Adjunto el fichero del programa.

Muchas Gracias
F.

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 5:58 pm
by medelec35
¿Qué versión de flowcode estás usando?




what version of flowcode are you using?

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 6:15 pm
by Fer_taca
La versión que tengo es: 8.0.0.6

En mi pregunta anterior hay un error con el texto del TMR1 indico que necesito 12 segundos. En realidad son 120 por eso la cuenta de 458 interrupciones

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 6:49 pm
by medelec35
Error causado por un oscilador interno que funciona a una frecuencia incorrecta.
OSCCON ajusta la velocidad del oscilador interno.
Set Osccon Value.png
(116.04 KiB) Downloaded 4430 times
Coloque el bloque de código C al inicio de Main.

Flowcode requiere actualización:
Update V8.png
(192.77 KiB) Downloaded 4430 times
Más preciso si usa timer2:
Timer2 int.png
(22.91 KiB) Downloaded 4430 times

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 7:18 pm
by Fer_taca
Muchas gracias de nuevo.
Independientemente de la precisión usando el TMR2.
He realizado los cambios propuestos y los tiempos ahora en simulación son mas lentos, pero el tiempo del TMR0 que obtengo ahora es justamente la mitad de lo programado.

Es decir que si programo un tiempo de 60, al dar al interruptor de Start_Stop el display se está decrementando cada segundo cuando en realidad según lo programado si no me he equivocado, el display se debería de decrementar cada minuto. :shock: :shock: :shock:

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 7:41 pm
by Fer_taca
Por otra parte también acabo de comprobar que el tiempo de interrupción del TMR1 sigue siendo muy rápido, prácticamente me está dando un tiempo aproximado de 2sg en vez de los 2 minutos. :shock: :shock: :shock:

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 7:42 pm
by medelec35
De nada.
Semicolon missing.png
(6.71 KiB) Downloaded 4418 times
Para cronometrar, probar en hardware

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 7:49 pm
by Fer_taca
Gracias,
Lo raro es que no diese ningún error al compilar.
En cuanto pueda lo pruebo en hardware. Pero se me sigue haciendo muy raro que el tiempo se ajusto 1/10 del tiempo ajustado.
¿Puede revisar la rutina del TMR0 y ver si hay algo mal?

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 7:57 pm
by medelec35
La simulación es mucho más rápida que en tiempo real.

Re: Visualización en 7 segmentos

Posted: Tue Mar 19, 2019 7:58 pm
by Fer_taca
Una vez más gracias.