SAE11_2023/make_test/timer.c

83 lines
2.2 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <graph.h>
#include "timer.h"
#define cycle 1000000L
void initialiser_timer(int *min, int *sec) {
*min = 0;
*sec = 0;
}
int afficher_seconde(int sec){
char timer[50];
int x = 230 ,y = 850;
if(sec<=9){
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
RemplirRectangle(x-3,y-25,40,30);
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
EcrireTexte(x,y,"0",2);
snprintf(timer,sizeof(timer),"%d",sec);
EcrireTexte(x+15,y,timer,2);
} else {
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
RemplirRectangle(x-3,y-25,40,25);
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
snprintf(timer,sizeof(timer),"%d",sec);
EcrireTexte(x,y,timer,2);
}
return sec;
}
int afficher_minute(int min){
char timer[50];
int x = 190 ,y = 850;
if(min<=9){
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
RemplirRectangle(x-3,y-25,40,30);
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
EcrireTexte(x,y,"0",2);
snprintf(timer,sizeof(timer),"%d",min);
EcrireTexte(x+30,y,":",2);
EcrireTexte(x+15,y,timer,2);
} else {
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
RemplirRectangle(x-3,y-25,40,25);
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
snprintf(timer,sizeof(timer),"%d",min);
EcrireTexte(x+30,y,":",2);
EcrireTexte(x,y,timer,2);
}
return min;
}
void update_timer(int *min, int *sec) {
static unsigned long int temps_precedent = 0;
unsigned long int temps_actuel = Microsecondes();
unsigned long int temps_ecoule = temps_actuel - temps_precedent;
if (temps_ecoule >= cycle) {
temps_precedent = temps_actuel;
if (*sec < 59) {
(*sec)++;
} else {
*sec = 0;
(*min)++;
}
/* Afficher le timer */
afficher_seconde(*sec);
afficher_minute(*min);
}
}
void pause(void) {
while (1) {
if (ToucheEnAttente() && Touche() == XK_space) {
break;
}
}
}