Cita de: Meta en 28 Enero 2011, 23:19 PM
El TIMER0 es más preciso hasta para contar.
no se usar el TMR, estoy en ello poco a poco.....
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Meta en 28 Enero 2011, 23:19 PM
El TIMER0 es más preciso hasta para contar.
Cita de: skapunky en 28 Enero 2011, 01:56 AM
Mira, tiene facil solución, espero que entienda el planteamiento.
Primero de todo, utiliza la libreria delay.h o create tu propia rutina de retardo con un tiempo que conozcas, por ejemplo de 1 segundo. Entonces mete la rutina del tiempo que cada segundo incremente una variable, dentro de un while que verifique que una variable no sea uno. Cuando sea uno haz que salga del while y cuenta cuanto a sumado el contador que se incrementa con el delay, sabras que cada incremento es de 1 segundo.
Te pongo aquí codigo para que te hagas una idea, lo programo aquí directamente:
int cont;
int sensor;
Void Interrupt_XX()
{
// Rutina de interrupción, para saber que salta interrupción
sensor = 1;
}
Void delay (void)
{
// Rutina de retardo, por ej 2 o 3 bucles anidados que sumen tiempo
}
Void main{
while sensor=0 {
delay();
cont ++;
}
sensor = 0;
}
Fijate que cont se va incrementando (+1 segundo si delay es de 1 segundo) hasta que la variable sensor es 1, para ello ya tendras el tiempo contado en cont que es lo que necesitas. Espero que te aclares con el codigo y cojas la idea.
Por otro lado, porías utilizar los TMRx del pic, pero bueno, con que te crees tu propia funcion Delay() o utilizes delay.h ya bastará.