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 <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <graph.h> #include <graph.h>
#include <unistd.h> #include <time.h>
#define CYCLE 10000L #define CYCLE 10000L
@@ -109,15 +109,17 @@ void deplacerSerpent(int longueurSerpent, Segment serpent[], int direction){
unsigned long Microsecondes() { unsigned long Microsecondes() {
/* Code pour obtenir le temps en microsecondes*/ return 0;
/* Remplacez cela par la logique réelle de votre application*/
return 0; /* Remplacez 0 par la valeur correcte*/
} }
/* Fonction pour convertir les microsecondes en minutes:secondes*/
void ConvertirMicrosecondes(unsigned long microsecondes, int *minutes, int *secondes) { void ConvertirMicrosecondes(unsigned long microsecondes, int *minutes, int *secondes) {
*minutes = microsecondes / 60000000; /* 1 minute = 60 * 1 000 000 microsecondes*/ *minutes = microsecondes / 60000000;
*secondes = (microsecondes % 60000000) / 1000000; /* 1 seconde = 1 000 000 microsecondes*/ *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); afficherPastilleAleatoire(5);
afficherSerpent(serpent, longueurSerpent); 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; unsigned long suivant = Microsecondes() + CYCLE;
while (1) { /* Boucle principale du programme*/ while (1) {
if (Microsecondes() > suivant) { 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; int minutes, secondes;
ConvertirMicrosecondes(Microsecondes(), &minutes, &secondes); ConvertirMicrosecondes(Microsecondes(), &minutes, &secondes);
/* Afficher le temps*/
printf("Temps écoulé : %02d:%02d\n", minutes, secondes); printf("Temps écoulé : %02d:%02d\n", minutes, secondes);
/* Mettre à jour la prochaine date*/
suivant = Microsecondes() + CYCLE; suivant = Microsecondes() + CYCLE;
} }
/* Ajoutez d'autres traitements de la boucle principale ici*/
AttendreMicrosecondes(1000);
/* Pause pour ne pas surcharger le processeur*/
usleep(1000); /* Attendez 1000 microsecondes (1 milliseconde)*/
} }
while(1){ while(1){
int touche; int touche;