Temporizador

Si tienes alguna duda y crees que alguien podría resolverla, ponla aquí. || If you have any doubt about programming, post it here.

Moderador: CEZ

Responder
Floc
8 bits
8 bits
Mensajes: 9
Registrado: 16 Jun 2007 14:22

Temporizador

Mensaje por Floc »

Estoy haciendo un programilla donde necesito controlar el tiempo. Usando bucles consigo una aproximación bastante buena a los segundos. El problema viene cuando el tiempo se incrementa dentro de un bucle que dentro tiene un retardo que cada vez es mas pequeño. Eso me jode lo del tiempo.

Hay alguna función para obtener el tiempo directamente de la computadora??

PD Usando Allegro.
Avatar de Usuario
AugustoRuiz
128 bits
128 bits
Mensajes: 1726
Registrado: 24 May 2006 08:35
Ubicación: Madrid
Contactar:

Re: Temporizador

Mensaje por AugustoRuiz »

Floc escribió:Estoy haciendo un programilla donde necesito controlar el tiempo. Usando bucles consigo una aproximación bastante buena a los segundos. El problema viene cuando el tiempo se incrementa dentro de un bucle que dentro tiene un retardo que cada vez es mas pequeño. Eso me jode lo del tiempo.

Hay alguna función para obtener el tiempo directamente de la computadora??

PD Usando Allegro.
Si es para Windows, tienes la función QueryPerformanceCounter... La documentación está aquí:

http://msdn2.microsoft.com/en-us/library/ms644904.aspx

Para usarla necesitarás poner #include "Windows.h". Recuerda antes de llamarla preguntar (basta con hacerlo una vez antes de empezar a llamar a la función) cada cuanta frecuencia se actualiza el contador. Para ello puedes llamar a la función QueryPerformanceFrequency. La documentación:

http://msdn2.microsoft.com/en-us/library/ms644905.aspx

Por último, la solución multiplataforma (pero con una resolución menor), la función time();

Código: Seleccionar todo

time_t now;

time(&now);
Saludos!
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Mensaje por na_th_an »

Usando bucles harás que el programa vaya más rápido en ordenadores más rápidos y más lento en ordenadores más lentos. Definitivamente no es una opción hoy día.

Para contar el tiempo puedes mirar cómo instalar una función callback que se ejecute cada cierto tiempo incrementando una variable volatile. En la documentación de Allegro viene paso por paso el código necesario.
Avatar de Usuario
Benway
Site Admin
Site Admin
Mensajes: 9241
Registrado: 24 Dic 2005 10:18
Ubicación: Madrid
Contactar:

Mensaje por Benway »

Un saludo.
Imagen - Imagen - Imagen
Responder