TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: Marttyn en 04 de Mayo de 2016, 07:17:02
-
Hola!
Hay varias calculadoras de timer para PIC dando vueltas por internet, pero la mayoria son algo antiguas, y los PIC se han actualizado con nuevos prescaler, postscaler, y demas... y las calculadoras disponibles no tienen los nuevos parametros.
Me he cansado de andar con la calculadora y por eso he creado una calculadora muy simple, que permite introducir los valores que queremos y nos dira los tiempos de interrupcion, overflow y tick del timer. Es tan simple que ni siquiera hago comprobaciones de que los valores introducidos esten bien, entiendo que sabemos mirar el datasheet y poner valores validos :mrgreen:
- Tienes que ingresar para ver archivos adjuntos -
Esta pensado principalmente para el timer 2, que es el que mas configuraciones suele tener, pero servira para cualquier timer.
Esta el proyecto entero en VB Express 2010. En la carpeta bin\release\ esta el ejecutable si no quereis compilarlo.
Si alguien hace alguna mejora que lo comparta :-/
Un saludo!
-
Hola Marttyn, gracias por compartir tu proyecto.
Creo que para gente con poca experiencia, como es mi caso, seria bueno tener una version de la calculadora, que partiendo de los datos que en la original son calculados, calcule los que son introducidos. Me explico: Introduciendo la frecuencia del cristal, tiempo para overflow, teimpo para interrupcion y tiempo para ticks, se calculen los valores de preset, prescaler y postcaler.
Ya se que es una modificacion muy sencilla de hacer, pero yo no puedo hacerla porque no utilizo VB, ni tan siquiera windows de forma habitual, tan solo para utilizar ciertos programas de desarrollo de los PIC's.
Saludos.
-
Hola Marttyn, gracias por compartir tu proyecto.
Creo que para gente con poca experiencia, como es mi caso, seria bueno tener una version de la calculadora, que partiendo de los datos que en la original son calculados, calcule los que son introducidos. Me explico: Introduciendo la frecuencia del cristal, tiempo para overflow, teimpo para interrupcion y tiempo para ticks, se calculen los valores de preset, prescaler y postcaler.
Ya se que es una modificacion muy sencilla de hacer, pero yo no puedo hacerla porque no utilizo VB, ni tan siquiera windows de forma habitual, tan solo para utilizar ciertos programas de desarrollo de los PIC's.
Saludos.
Lo que dices tiene mucho sentido, y seria muy util. Pero no es una modificacion tan sencilla como parece.
Por un lado cada PIC tiene unos prescalers y postscalers determinados, y no todos tienen los mismos, por lo que habria que definirle al programa cuales son los que tiene tu PIC.
Por otro lado, es la combinacion de 3 factores los que te dan un tiempo de interrupcion, pero varias configuraciones diferentes te pueden dar el mismo tiempo de interrupcion. Por ejemplo:
Para un PIC a 4Mhz si queremos una interrupcion cada 400uS podemos conseguirlo con:
-Pre: 1 / PR: 24 / Post: 16
-Pre: 16 / PR: 24 / Post: 1
-Pre: 2 / PR: 24 / Post: 8
-Pre: 8 / PR: 24 / Post: 2
-Pre: 4 / PR: 24 / Post: 4
-Pre: 1 / PR: 49 / Post: 8
-Pre: 8 / PR: 49 / Post: 1
-Pre: 2 / PR: 49 / Post: 4
-Pre: 4 / PR: 49 / Post: 2
-Pre: 1 / PR: 99 / Post: 4
-Pre: 4 / PR: 99 / Post: 1
-Pre: 2 / PR: 99 / Post: 2
-Pre: 1 / PR: 199 / Post: 2
-Pre: 2 / PR: 199 / Post: 1
y tal vez me dejo alguno.... pero creo que entiendes el problema. El programa no te puede dar una unica solucion, por lo que tendria que calcular TODAS las opciones posibles mirando cual da el resultado que tu buscas. No es dificil de hacer, pero llevaria un rato.
Y dada una velocidad de PIC, no es dificil jugar con 3 valores hasta dar con el que mas te guste :mrgreen:
-
Y dada una velocidad de PIC, no es dificil jugar con 3 valores hasta dar con el que mas te guste :mrgreen:
Justo de eso trataba de huir, pero tal como lo planteas, habra que utilizar el metodo de prueba y error. :D :D
Saludos.
-
Justo de eso trataba de huir, pero tal como lo planteas, habra que utilizar el metodo de prueba y error. :D :D
Es que tambien mucho depende de la precision, algunos valores tal ves den un numero fraccionario. Y vos quieras ser bien preciso. Supongamos:
-Pre: 2 / PR: 199 / Post: 1
398 ciclos de reloj serian, pero vos querias exactamente 399, Y podes hacerlo como te guste
Pre: 1 / Post: 1 todos
PR: 200 Primera interrupcion, 199 la segunda
PR: 256 Primera interrupcion, 143 la segunda
etc..
Eso va a terminar pasando por que es te conviene mas, como te resulta mas facil, etc.