Timer avec time.h
This commit is contained in:
37
main.c
37
main.c
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user