Un temporizador sencillo en lenguage C

Un buen ejercicio para un programador apenas comenzando es implementar un módulo que simula un temporizador. Para ello hemos utilizado las siguientes funciones que ya existen en la biblioteca de C:

delay () - suspende la ejecución de intervalo [milisegundos] (definido en DOS.H)

kbhit () - verifica pulsaciones de teclado disponibles (definido en CONIO.H)

printf () - envia un mensaje formateado a video. (STDIO.H)

clrscr () - limpia la ventana en modo texto (definido en CONIO.H)

A continuación se encuentra el módulo de código:

#include <stdio.h>
#include <dos.h>
#include <conio.h>

 

void timer(float cycle)
{
float count=0.0;
int goLoop=1;
	
	while(goLoop)
	{
		if(kbhit())
		{
			//	Keypressed, exit
			goLoop=0;
		}else{
    			delay(100);
			count+=0.1;
			if(count> cycle)
			{
				//	Time expired, exit
				goLoop=0;	
			}
		}
   		clrscr(); 
   		printf(“ The timer is %06.1f seconds\n”, cycle);
	} // end for
} // end module

 

 

Como podemos ver hay ciclo "while" que utiliza (bloqueo) función de biblioteca Delay(), (por ejemplo, Delay (1000) = 1 segundo; demora (10) = 0,01 segundo), aquí el uso a 1 décima de segundo retraso (delay(100)). Para cada ciclo de la variable es contar con incremento de 1 décima luego un fin de intervalo de control se realiza (if (count> ciclo)).

Se utilizó además la función kbhit () para detener el temporizador cuando se requiera (con sólo pulsar una tecla). La variable "cycle" es evidentemente un decimal para obtener una décima parte de 1 segundo de resolución. Ademas, el valor del temporizador es la salida para vídeo usando printf con un formato especificador f 06,1% (0.014,5 por ejemplo).

Para utilizar este cronómetro cada vez que queremos, tenemos que:

Crear un archivo de cabecera donde el prototipo TIMER debe declararse.

Incluir este archivo de cabecera en el programa principal.

En el código principal del programa hay que llamar este módulo utilizando el mismo tipo variable (decimal en este caso).

Compilar este módulo y determinar la presencia de errores.

Un posible código para el encabezado podría ser:

#ifndef __TIMER_H__
#define __TIMER_H__

void timer(float cycle);

#endif

En el programa principal # include "timer.h" debe incluirse entre los otros archivos de cabecera y el módulo puede ser llamado con la siguiente instrucción: timer (x); donde "x" ha sido declarado como decimal.

Nuevos

  • kaiku
  • proteo100
  • Jose Antonio De...
  • 666odio
  • macotilla

En línea

En este momento hay 0 usuarios y %count invitados en línea.
hit counter