Timer avec time.h

This commit is contained in:
2023-12-01 15:55:06 +01:00
parent 718ca69305
commit 40f56e80c7

37
main.c
View File

@@ -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,34 +142,25 @@ int main() {
afficherPastilleAleatoire(5);
afficherSerpent(serpent, longueurSerpent);
const unsigned long CYCLE = 1000000L; /* Intervalle en microsecondes (1 seconde)*/
const unsigned long CYCLE = 1000000L;
/* 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);
}
while(1){
int touche;