[C++] Fonction time
Résolu/Fermé
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
-
27 avril 2009 à 09:28
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 - 9 juil. 2009 à 11:15
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 - 9 juil. 2009 à 11:15
A voir également:
- [C++] Fonction time
- Fonction si et - Guide
- Finish time lite - Télécharger - Utilitaires
- Salat time - Télécharger - Agendas & Calendriers
- Quick time - Télécharger - Lecture
- Time machine - Guide
13 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
27 avril 2009 à 09:33
27 avril 2009 à 09:33
Salut. Il faut faire des thread, avec dans chaque boucle des test sur le temps.
Après, c'est quoi ton problème, les thread et la simultanéité des boucles ou la fonction lisant le temps ? voir http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/time.2.html pour cette dernière.
Après, c'est quoi ton problème, les thread et la simultanéité des boucles ou la fonction lisant le temps ? voir http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/time.2.html pour cette dernière.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
27 avril 2009 à 10:41
27 avril 2009 à 10:41
int temps=time(); permet de récupérer l'heure courante.
ensuite, il faut faire un tampon, tu stocke l'heure, et tu attends que le nombre de seconde écoulé soit au moins ce que tu veux, tu effectue la tâche et tu remet le compteur au temps courant (ou tu utlises un modulo).
par exemple :
if(!(time()%(3*60)))// traitement à effectuer toutes les 3 minutes.
C'est un exemple peut tolérant aux arrets etc.
t=time();
While(1)
if(time()-t>180)
{
t=time();
//traitement
}
ensuite, il faut faire un tampon, tu stocke l'heure, et tu attends que le nombre de seconde écoulé soit au moins ce que tu veux, tu effectue la tâche et tu remet le compteur au temps courant (ou tu utlises un modulo).
par exemple :
if(!(time()%(3*60)))// traitement à effectuer toutes les 3 minutes.
C'est un exemple peut tolérant aux arrets etc.
t=time();
While(1)
if(time()-t>180)
{
t=time();
//traitement
}
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
27 avril 2009 à 09:35
27 avril 2009 à 09:35
en effet, si tu veux que les 2 boucles s'effectuent en parallèle, il faut faire des thread. (un par traitement + le thread principale (celui de ton main))
l'autre solution, suivant le traitement que tu fais, tu peux très bien aussi faire tes 2 traitement dans la meme boucle, avec un IF qui va déterminer si tu dois effectuer le traitement 1, le 2 ou les 2.
l'autre solution, suivant le traitement que tu fais, tu peux très bien aussi faire tes 2 traitement dans la meme boucle, avec un IF qui va déterminer si tu dois effectuer le traitement 1, le 2 ou les 2.
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
27 avril 2009 à 09:43
27 avril 2009 à 09:43
ce sont 2 traitements tout a fait indépendants mais utilisant tous les deux des fonctions de temps et récupérant tous les deux l'heure système, je vous pose la question pour les deux boucles en une seule fois...
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
>
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
27 avril 2009 à 09:57
27 avril 2009 à 09:57
il faut choisir:
- c'est tout a fait indépendant, ou
- faire les 2 boucles en une seule fois (dans la meme boucle quoi)
- c'est tout a fait indépendant, ou
- faire les 2 boucles en une seule fois (dans la meme boucle quoi)
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
27 avril 2009 à 10:18
27 avril 2009 à 10:18
indépendantes, l'une sera pour une régulation de température, l'autre pour une régulation de nourriture . . .
donc ce sera sur 2 boutons différents avec multithreading
donc ce sera sur 2 boutons différents avec multithreading
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
27 avril 2009 à 10:31
27 avril 2009 à 10:31
et c'est quoi qui pose problème?
le multi threading? Le partage des ressources (important en multi threading), la pause de 1 ou 4 minutes?
le multi threading? Le partage des ressources (important en multi threading), la pause de 1 ou 4 minutes?
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
27 avril 2009 à 10:40
27 avril 2009 à 10:40
ben je ne sais pas comment coder la boucle qui utiliserait une fonction de temps récupérant l'heure système je veux juste réussir à coder ces 2 boucles mais ne sait comment faire
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
27 avril 2009 à 10:44
27 avril 2009 à 10:44
c'est exactement ça l'idée merci beaucoup je vais maintenant étudier ta solution merci
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
27 avril 2009 à 11:27
27 avril 2009 à 11:27
" Int temps=time(); permet de récupérer l'heure courante. "
ils me disent que time ne prend pas 0 arguments
ils me disent que time ne prend pas 0 arguments
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
27 avril 2009 à 14:17
27 avril 2009 à 14:17
Si tu lit le lien que je t'ai donnée, c'est vrai.
il suffit de faire time(0), et ça devrais fonctionner.
il suffit de faire time(0), et ça devrais fonctionner.
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
28 avril 2009 à 09:23
28 avril 2009 à 09:23
autant pour moi oui je l'ai lu :p merci
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
28 avril 2009 à 09:34
28 avril 2009 à 09:34
au risque de paraître très très nul , ce qui ne serait pas vraiment faux, ils me disent t undeclared identifier...
j'ai d'abord remis "time_t time(time_t *t); " de ton lien, mais rien ne change... j'ai alors mis "time_t t;" est ce que cela est bon? ma boucle ne s'arrête pas après mais ça c'est à moi de voir je pense :D
j'ai d'abord remis "time_t time(time_t *t); " de ton lien, mais rien ne change... j'ai alors mis "time_t t;" est ce que cela est bon? ma boucle ne s'arrête pas après mais ça c'est à moi de voir je pense :D
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
29 avril 2009 à 08:24
29 avril 2009 à 08:24
met ton code, on y verra plus clair.
Ne pas oublier de déclarer chaque variable avant son utilisation.
Ne pas oublier de déclarer chaque variable avant son utilisation.
Doudou95
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
275
9 juil. 2009 à 11:15
9 juil. 2009 à 11:15
J'ai résolu depuis merci et désolé du retard
27 avril 2009 à 09:54