Puedes contar tiempo de dos formas princialmente:
Usando un bucle de programa, por ejemplo For o Repeat o While y tatos bucles corresponden a un tiempo según la frecuencia del oscilador. Esto tiene el inconveniente de que si te paras a contar vueltas no puedes hacer otra cosa y además si el programa se bifurca por sitios diferentes no tendrás precisión. Es posiblemente la forma más fácil y la más inexacta pero si no necesitas exactitud puede servirte.
Otra forma más elegante es usar uno de los timer del micro. Co este método tienes dos formas de hacerlo: por interrupción y por pooling del flag del timer:
Si lo haces por interrupción cada vez que tu timer se desborda porque ha llegado a la cuenta máxima el flag se activa y salta una interrupción. Ahí tu rutina de interrupción hace algo con ese tiempo que es exacto: cuentas segundos, milisegundos o lo que quiras. Este modo tiene la ventaja que el micro puede hacer otras cosas mientras su timer está contando, perdiendo un poco de tiempo para atender a la interrupción cuando se produce.
Si lo haces por pooling del flag del timer, eres tu por programa el que vas chequeando cuando se produce un desbordamiento del timer. Aquí pierdes un poco más de tiempo que en la interrupción pero puede ser válido en algunas aplicaciones.
Ejemplodel timer los puedes encontrar en
www.melabs.comSaludos
Ricky
Si usas el timer