# Temporizador con Flowcode 6



## Fer_TACA (Oct 27, 2017)

Estoy empezando a programar/conocer Flowcode. Ya he pasado la fase de encender y apagar Led. lo mismo que usar delay.
Ahora quiero pasar a manejar las interrupciones, en concreto crear una temporización usando el TMR1. Según la configuración del reloj a 20MHz y predivisor a 1:8, Flowcode indica que se desborda cada interrupción a los 104msg aproximadamente y por lo tanto si quiero manejar un retraso de 1sg, en la rutina de interrupción debo crear un contador auxilar de 9 0 10 veces para llegar al segundo.
Hecho esto, al simular observo que el led que tengo dispuesto para ver el tiempo que enciende y se apaga muy rapidamente, varias veces por segundo.
Para llegar al segundo, tengo que cambiar el contador a 200. Por lo que creo que o algo estoy realizando mal, lo mas probable, o me falta algo.
¿Se me podría indicar como realizar el cálculo para llegara conocer exactamente que valor en el contador de interrupciones para conocer un tiempo determinado.
Muchas Gracias ...


----------



## D@rkbytes (Oct 27, 2017)

Fer_TACA dijo:


> ¿Se me podría indicar cómo realizar el cálculo para llegar a conocer exactamente qué valor en el contador de interrupciones para conocer un tiempo determinado?


No uso Flowcode ni lo usaré, pero las fórmulas están en la hoja de datos de cualquier PIC que tenga Timer 1.
Prácticamente, si quieres que el Timer 1 desborde cada 100 mS. Aprox. @ 20 MHz, debes establecer el prescaler en 1:8 y recargar el Timer con 3036 (Hex = 0xBDC) cada vez que desborde.

También existen Calculadoras de Timers en línea y aplicaciones.


----------



## Fer_TACA (Oct 27, 2017)

Gracias por la respuesta.
 Ese cálculo ya lo realicé y me salió en valor indicado.
 El problema radica en que Flowcode al configurar la interrupcion del TMR1 debes elegir la frecuencia del oscilador, de donde procede la cuenta(clok interno) y eñl prescaler 1:8. Por defecto re configura el valor del TMR1 a "0" con lo cual la interrupcion se produce aprox 104ms (un poco mas).
 Luego si quiero contar un segundo dberia usar un contador adcional que llegua a 9 o 10(dependiendo de la precision).
 Hecho esto en su simulador al correre el programa la salida cambia muy rapidamente y si quiero apreciar el valor de 1s, entoces el contador lo tengo que poner hasta 200.
 Por eso la pregunta porque si se requiere otro valor ¿como se calcualaria, a ojo? 
 Emtiendo que debe de haber algun metodo para saberlo o como calcularlo aplicandolo a flowcode. Por eso la consulta.


----------



## D@rkbytes (Oct 27, 2017)

En todos los entornos de programación que conozco, el valor del Timer 1 se puede leer y escribir.
Así que supongo que Flowcode también debe permitir recargar el valor del Timer 1 y en la ayuda debe venir cómo hacerlo.


----------



## Fer_TACA (Oct 27, 2017)

Lo de la recarga del timer no es problema.
El problema es ver hasta que punto son ciertos los valores que se obtienen en la simulación pues hay mucha diferencia de los cargados a los obtenidos.
De ahí la pregunta de como se podría ver con cierta seguridad que los tiempos cargados se cumplen.


----------



## Daniel.more (Oct 28, 2017)

para verificar con rigor de forma práctica que los tiempos de las interrupciones son confiables  (en flowcode generalmente siempre lo son) lo único que se me ocurre es hacer un programa que por interrupción Tmr genere pulsos a un contador y a su vez que este genere una frecuencia en un pin de salida, luego medir físicamente en un pcb, que esta frecuencia de salida coincida con la que debería salir según el programa creado en flowcode... saludos


----------



## D@rkbytes (Oct 28, 2017)

La verdad es que yo no entiendo el motivo de usar este tipo de pseudo programación.
Sé que mi comentario les parecerá desagradable, pero es que no lo puedo comprender.
Habiendo muy buenos entornos que realmente se dedican a programar en lenguajes conocidos, no entiendo el por qué usar algo que está basado en bloques.
Para mi es complicarse en algo que se puede obtener con estudiar.
Vamos, FlowCode ya es pasar de alto nivel a nivel retrasado. (Y no quiero ofender a nadie, pero es la verdad)
Usando este tipo de programación no se avanza, se retrocede.
Para algunos les será fácil usar este tipo de programación, pero no se dan cuenta que primero deben conocer sistemas digitales, estructuras de microcontroladores y su lógica, que no es más que lo sabemos, pero resumido con instrucciones.
Y mantengo lo dicho, aunque suene despectivo, y hasta incluso discriminatorio.
Pero si se va a hacer uso de un microcontrolador, lo mejor es estudiar y usar un entorno digno.

Tener la posibilidad de poder leer y escribir todos y cada uno de los registros de un Microcontrolador, es algo primordial.

Para mi, el uso de FlowCode, es para personas sin ganas de aprender lenguajes de programación.
Tomen este comentario como algo que a futuro les evitará preguntas de este tipo.


----------



## pandacba (Oct 29, 2017)

Cada quien es libre de elegir que usar y que no, se puede aconsejar en base a la experiencia y los gustos.
Pero no hacer sentir que porque alguien elije determinado camino tratarlo de "retrogrado"
Hay quienes tienen muchos conocimientos de programación, pero no nada y muy poco de electrónica, y el no saber esto los limita.
Por ejemplo cuando se programa un PLC con el que se pueden hacer muchas cosas a nivel industrial, sin embargo el lenguaje que utilizan los PLC, no son "C", no son "Basic", ni mucho menos "assembler"
Se basa en lógica y en flujo de información, se programa en lader, o en forma gráfica, en forma modular como lo hace el Flow Code. 
De acuerdo al criterio emanado y expuesto se pude deducir que quien utiliza y trabaja por ejemplo con la gama S7 son retrogrados" son equipos costosos y caros y esta estandarizado en la industria.
De echo Flow Code es mucho más potente, que el sistema lader.
Conocer lógica hace más potente el desempeño, quien solo ve un micro como una caja negra, esta limitado.
Desconozco causa y/o razón por la cual utiliza este entorno, pero si para su ámbito de desarrollo le sirve  y le soluciona los problemas ¡perfecto!
Se podría decir que el 8051 ya esta obsoleto, pero se lo sigue fabricando porque se lo consume.
Quienes lo utilizan son retrogrados??? Se fabrican potentes placas para entrenamiento para el mismo, hay quienes lo siguen eligiendo, perfecto, es la libre edición de quienes lo utilizan.
De echo el mundo no es solo PIC o AVR En los aparatos comerciales no se utilizan estos micros
Por ejemplo que lleva este modulo?





No es ni PIC, ni AVR, eso evidencia que hay otro mundo más alla Microchip
Y cada quién utilza lo que más le conviene o elige ya sea mala o buena elección, para muchos ha sido un primer paso, para luego avanzar.
La revista Elektor ha publicado cosas muy pero muy interesantes echas en Flow Code.
Aconsejar, esta bárbaro, pero cada quien elija lo que quiera con total libertad, nadie es más que nadie ni menos que nadie


----------



## Daniel.more (Oct 29, 2017)

Pienso que discriminar así la programación en bloques y a los que lo utilizan, diciendo que es retrogrado pienso que no se habla desde el conocimiento, sino desde el despecho, Imagino que después de estudiar años un lenguaje de programación , y que ahora cualquiera sin ningún tipo de conocimiento, incluso el frutero, por culpa de un programa.....puede hacer prácticamente lo mismo que el, tiene que ser muy frustrante y lo entiendo.  

como ejemplo, me pongo yo mismo, yo realizo reparaciones electrónicas industriales muy complejas, como reparaciones de maquinas de rayos x, detectores de metales industriales para aeropuertos, basculas electrónicas para industria y cuerpos policiales, automatizaciones industriales muy complejas con PLC y sistemas scada, reparaciones de robótica industrial, además doy clases de electrónica industrial desde hace años en Unicenter sl, * Yo me considero  mediocre en programación en "C" dado que no me hace falta para realizar mi trabajo * sin embargo gracias a flowcode y otros similares puedo programar sistemas muy complejos con un (pic, pic 16, avr, arm) que uso a nivel de hoobye porque en industria no está permitido su uso si no se homologa

resumiendo, entiendo tu resquemor, aunque desde el respeto, pienso que no deberías de faltarle al respeto a muchísimos compañeros del foro diciendo que usan un entorno indigno y retrogrado, y betando las preguntas futuras sobre flowcode con frases como esta, (Tomen este comentario como algo que a futuro les evitará preguntas de este tipo  ) y más aún, o más grabe siendo Moderador del foro....saludos


----------



## Fer_TACA (Oct 29, 2017)

¡Vaya controversia!
Pienso que cada uno es muy libre de elegir el entorno que prefiera, unos por razones profesionales y otros por hobby.

Pero ciñéndonos al tema del post, solo pretendía conocer y que alguien me dijese, como a la hora de programar con Flowcode y necesitar un tiempo de terminado que valor, a partir del tiempo que tarda en desbordarse el TMR, poder colocar o determinar para llegar al tiempo necesitado. 
eso y saber si mis cálculos eran buenos o no.


----------



## Daniel.more (Oct 30, 2017)

aquí dejo la respuesta a como configurar una interrupción en FLOWCODE a un tiempo determinado que nosotros queramos. dejo un pdf y un zip, el pdf es la explicación y el sip es la calculadora de Timer2 /3/4, por si alguien alguna ves lo requiere, saludos.


----------



## Fer_TACA (Oct 30, 2017)

Gracias por los archivos y explicaciones.


----------



## D@rkbytes (Oct 30, 2017)

Disculpen si soné despectivo en cuanto al uso de FlowCode.
Es mi forma de pensar y cada quien es libre de usar lo que más le guste.

Sin embargo, quiero ser puntual en que todas las dudas que se tengan, se use lo que se use, uno debe buscar la hoja de datos y leerla hasta comprenderla.
Todo está ahí, y con atención se logra comprender el funcionamiento de cada registro.


----------



## jamesoro (Feb 26, 2018)

gracias por el aporte, la controversia y no sabia que eso era un micro el de la foto ya le busco el pdf.


----------



## pandacba (Feb 26, 2018)

Si te referis a la foto que puse, no se ve el micro, ya que esta justo debajo del display


----------



## jamesoro (Feb 26, 2018)

si exactamente, lo que vos decis es muy cierto, de hecho personalmente solo le hago a los pic pero ya estoy mirando otros. gracias


----------

