TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: moni en 28 de Mayo de 2009, 11:29:50
-
necesito medir tiempos por encima de 2 horas con el timer0
-
Medir o generar?
-
¿Assembler, C, basic?
-
Sea lo que sea, más de dos horas es malo malo para ese temporizador, tendrás que buscar otra solución como TIMER1 + CCP o TIMER2, además la pregunta no está bien formulada.
Por favor explique con más detalles que es lo que quiere hacer, así no podremos ayudarle.
Saludos
Reinier
-
no creo que sea tan mala idea, de hecho pienso que asi debe hacerse.
porque puedes fijar una base de tiempo principal, y temporizar otros procesos
pongamos un ejemplo:
asumiendo un cristal de 4MHz, un prescaler de 256, tenemos 4/4MHz*256*256=65.536ms
si quieres un tiempo de 2 horas, 2horas son: 7200ms -> 7200ms/65.536ms ~ 109863 desbordes del timer
declaras una variable, que se incremente hasta 109863 y allí habrán pasado ~ 2 horas, luego con una bandera controlas esa cuenta en un futuro.
-
Sea lo que sea, más de dos horas es malo malo para ese temporizador, tendrás que buscar otra solución como TIMER1 + CCP o TIMER2
Porque seria malo? se traba o algo? que podria pasar rein?
-
Bueno, lo malo es si quieres tener precisión en el tiempo a medir, y sobre todo si no sabes utilizar el TIMER correctamnente, aunque para hacer lo que comenta pali, este TIMER viene de perlas, para hacer bases de tiempo para otros procesos es muy bueno, sobre todo por lo simple que es. Pero siempre y digo SIEMPRE, debe utilizarse sin escribir sobre el timer para hacer ajustes en la temporización, porque la escritura del registro de conteo mete unos errores en la medición de tiempo que ni para que contarles.
Visto y comprobado.
Saludos
Reinier
-
si es verdad Reiniert, en cuanto a precisión hay que tener mucho cuidado. Pongamos el ejemplo de usar una base de tiempo general, todos los procesos pueden tomar ese timer, el timer correrá solito siempre, y los tiempos de los procesos serán controlados por banderas e incrementos de variables, pero el rollo viene a la hora de preguntar por esas banderas, porque deben hacerse en alguna parte del bucle principal y no debe tardar mucho para no exceder el tiempo estipulado.
por un lado tienes el hecho de hacer las comprobaciones dentro del mismo timer, y después en el bucle principal llamar a los procesos, esto implica demorar las interrupciones siguientes.
por el otro lado activas banderas solamente dentro de la interrupción, y después en el bucle principal hay que preguntar por esas banderas para ejecutar los procesos.
-
Es verdad pali, todo un rollo, de eso se puede hacer un buen trabajo, c'omo lograr una buena relaci'on de compromiso entre una buena temporización y lograr que nuestros micros no parezcan "entufados"
Saludos
Rinier