Home
Accesso / Registrazione
 di 

Un semplice timer scritto in linguaggio C

Timer linguaggio C

Un semplice timer in linguaggio C.Un buon esercizio per un principiante è scrivere un modulo che simuli un timer. Per realizzarlo abbiamo usato le funzioni che già esistono nella libreria del linguaggio C:

delay() – sospende l’esecuzione per un intervallo di tempo [ millisecondi ] ( definito in DOS.H )
kbhit() – verifica se un tasto è stato toccato ( defined in CONIO.H )
printf() - stampa a video un messaggio formattato. (STDIO.H)
clrscr() – pulisce lo schermo ( defined in CONIO.H )

Qui sotto c’è il codice del modulo :

#include <stdio.h>
#include <dos.h>
#include <conio.h>
void timer(float cycle)
{
float count=0.0;
int goLoop=1;
	
	while(goLoop)
	{
		if(kbhit())
		{
			//	Tasto premuto, esci
			goLoop=0;
		}else{
    			delay(100);
			count+=0.1;
			if(count> cycle)
			{
				//	Intervallo scaduto, esci
				goLoop=0;	
			}
		}
   		clrscr(); 
   		printf(“ The timer is %06.1f seconds\n”, cycle);
	} // end for
} // end module

Come possiamo vedere c'e' un ciclo while dove viene utilizzata la funzione (bloccante ) di libreria delay() (per esempio delay(1000) = 1 secondo ; delay (10) = 0.01 secondi ), nel nostro caso usiamo un ritardo di un decimo di secondo (delay(100)).

Ad ogni loop incrementiamo la variabile count di un decimo e controlliamo se e' stato superato l'intervallo di attesa richiesto (if(count> cycle)).
Abbiamo usato la funzione kbhit() per fermare il conteggio quando vogliamo ( basta premere un tasto).

Nel codice, la variabile “cycle” è ovviamente di tipo float per ottenere la risoluzione del decimo di secondo. Inoltre viene stampato a video il valore del timer usando la funzione printf, che usa lo specificatore di formato %06,1f (ad esempio 0014.5).

Come usare il timer scritto in linguaggio C

Per usare questo timer tutte le volte che vogliamo bisogna:
Creare un file header dove il prototipo TIMER deve essere dichiarato.
Inserire questo file header nel programma principale.
Nel programma principale questo modulo deve essere chiamato usando lo stesso tipo di variabile ( float in questo caso ).
Compilare questo modulo e vedere se ci sono errori.

Un possibile file header potrebbe essere :

#ifndef __TIMER_H__
#define __TIMER_H__

void timer(float cycle);

#endif

Nel programma principale bisogna inserire #include “timer.h” tra gli altri files header e il modulo può essere chiamato con una istruzione del tipo timer (x); dove x e' stata dichiarata di tipo float.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 8 utenti e 118 visitatori collegati.

Ultimi Commenti