Timer avec time.h
This commit is contained in:
31
main.c
31
main.c
@@ -1,7 +1,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <graph.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#define CYCLE 10000L
|
||||
|
||||
|
||||
@@ -109,15 +109,17 @@ void deplacerSerpent(int longueurSerpent, Segment serpent[], int direction){
|
||||
|
||||
|
||||
unsigned long Microsecondes() {
|
||||
/* Code pour obtenir le temps en microsecondes*/
|
||||
/* Remplacez cela par la logique réelle de votre application*/
|
||||
return 0; /* Remplacez 0 par la valeur correcte*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Fonction pour convertir les microsecondes en minutes:secondes*/
|
||||
void ConvertirMicrosecondes(unsigned long microsecondes, int *minutes, int *secondes) {
|
||||
*minutes = microsecondes / 60000000; /* 1 minute = 60 * 1 000 000 microsecondes*/
|
||||
*secondes = (microsecondes % 60000000) / 1000000; /* 1 seconde = 1 000 000 microsecondes*/
|
||||
*minutes = microsecondes / 60000000;
|
||||
*secondes = (microsecondes % 60000000) / 1000000;
|
||||
}
|
||||
|
||||
void AttendreMicrosecondes(unsigned long microsecondes) {
|
||||
clock_t debut = clock();
|
||||
while ((clock() - debut) * 1000000 / CLOCKS_PER_SEC < microsecondes);
|
||||
}
|
||||
|
||||
|
||||
@@ -140,32 +142,23 @@ int main() {
|
||||
afficherPastilleAleatoire(5);
|
||||
afficherSerpent(serpent, longueurSerpent);
|
||||
|
||||
const unsigned long CYCLE = 1000000L;
|
||||
|
||||
const unsigned long CYCLE = 1000000L; /* Intervalle en microsecondes (1 seconde)*/
|
||||
|
||||
/* Marquer le début du premier cycle*/
|
||||
unsigned long suivant = Microsecondes() + CYCLE;
|
||||
|
||||
while (1) { /* Boucle principale du programme*/
|
||||
while (1) {
|
||||
if (Microsecondes() > suivant) {
|
||||
/* Une période s'est écoulée, effectuez la tâche nécessaire*/
|
||||
/* (par exemple, mettre à jour le dessin)*/
|
||||
|
||||
/* Convertir les microsecondes en minutes:secondes*/
|
||||
int minutes, secondes;
|
||||
ConvertirMicrosecondes(Microsecondes(), &minutes, &secondes);
|
||||
|
||||
/* Afficher le temps*/
|
||||
printf("Temps écoulé : %02d:%02d\n", minutes, secondes);
|
||||
|
||||
/* Mettre à jour la prochaine date*/
|
||||
suivant = Microsecondes() + CYCLE;
|
||||
}
|
||||
|
||||
/* Ajoutez d'autres traitements de la boucle principale ici*/
|
||||
|
||||
/* Pause pour ne pas surcharger le processeur*/
|
||||
usleep(1000); /* Attendez 1000 microsecondes (1 milliseconde)*/
|
||||
AttendreMicrosecondes(1000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user