[Horloge] Le minimum de consommation CPU pour une horloge

BabyAzerty Messages postés 26 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 12 août 2010 - 12 août 2010 à 18:45
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 26 août 2010 à 13:13
Bonjour,


Voici le principe de mon horloge :

-Elle montre l'heure (!!!!!)
-Elle lance une animation à chaque heure.

int main(void)
{
    time_t     now;
    struct tm  *ts;
    char       thetime[100];
    char       thehour[10];

    /* Récupération du temps */
    now = time(NULL);

    /* Affichage de l'heure sous forme : jjj aaaa-mm-jj h:min:sec */
    ts = localtime(&now);
    strftime(thetime, sizeof(thetime ), "%a %Y-%m-%d %H:%M:%S ", ts);
    printf("%s\n", thetime);

    /*Pour chaque heure */
    strftime(thehour, sizeof(thehour), "%H", ts);
    if(strcmp(thehour,"00")==0)
    {
        printf("Il est minuit");
    }
    //Etc pour chaque heure


    return 0;
}



Je voulais savoir quelle est la meilleure façon de "mettre à jour" l'heure en consommant un minimum de CPU
(Parce que là elle montre uniquement l'heure au moment de la compilation)

Ce qui signifie que j'aimerai éviter d'utiliser plein de boucle infini.

2 réponses

cs_alanito Messages postés 30 Date d'inscription vendredi 16 juillet 2010 Statut Membre Dernière intervention 10 juillet 2011
17 août 2010 à 13:15
Bonjour,
tu peu faire un
do{
.
.
.
}while(!kbhit())

Mais il faut que tu travail sur turbo C pour que ca marche. A bientôt.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 août 2010 à 13:13
Salut,

Met un sleep dans ta boucle.
Windows -> Sleep
linux -> nanosleep

Fait utilise les deux via un ifdef si tu veux que ton code soit portable.
0
Rejoignez-nous