begin process at 2012 05 29 06:37:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

évènement régulier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

évènement régulier

jeudi 10 novembre 2005 à 21:10:03 | évènement régulier

Mastersam

Bonjour j'ai besoin dans mon programme sur windows en C développé sous dev-cpp de produire un évènement qui se déclenche à intervalle régulier de 23ms, qu'il ne se déclenche pas avant ces 23 mais qu'il en soit le plus proche possible.

J'ai essayé de "réguler" un timer pour tenir compte de la vitesse d'execution du PC du genre:
if(lastsenttrame-lastcalcul+attente<23)attente++;else attente--;
             SetTimer(hwnd, IDT_TIMERDMX, attente, (TIMERPROC) NULL);

mais je suis toujours largement au dessus des 23ms .

Je voudrais trouver autre chose que l'utilisation d'un timer dans une fenètre qui est trop dépendent de l'activité du PC (Retard dans le traitement du message).

Merci d'avance.

jeudi 10 novembre 2005 à 22:42:20 | Re : évènement régulier

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
mets un thread dédié et dedans:

boucle:
- temps = systemtime
- Sleep(20)
while(1) {
  if(currsystemtime - temps) >= 23 ms break;
}
- Lance action
goto boucle;

ciao...
[ Lien ]
BruNews, MVP VC++
jeudi 10 novembre 2005 à 22:58:13 | Re : évènement régulier

Poufine

//bon voila moi j'utilise CWnd::setTimer dans un de mes programmes cpp ,mais ta fonction settimer semble à peu pres la meme
//voila comment je l'utilise
//je declare d'abord cette fonction:


void
CALLBACK EXPORT TimerProc( HWND hWnd, UINT nMsg, UINT nIDEvent , DWORD dwTime )

{

//code que tu veux executer toutes les 23 ms

}
/////////////////////////////////////////////////////////////////////////

 SetTimer(hwnd, IDT_TIMERDMX, 23, TimerProc);//appelle timerProc toutes les 23ms

//////////////////////////////////////////
//et quand j'en ai plus besoin:
KillTimer(IDT_TIMERDMX);


//En esperant que ca va t'aider ....

vendredi 11 novembre 2005 à 22:44:10 | Re : évènement régulier

Mastersam

Bon j'ai fait la solution de Brunews car celle de poufine était trop proche de la mienne j'avais besoin de traiter l'execution en dehors du programme et indépendemment d'une pile de message (d'ou le thread). J'ai cependant préféré un deuxième while(1) à la place du goto qui fait souvent dresser les cheveux de certains profs.

Merci pour les réponses et à bientôt.



Cette discussion est classée dans : timer, évènement, déclenche, régulier, 23ms


Répondre à ce message

Sujets en rapport avec ce message

Comment savoir le temps que prend un instruction? [ par Samoul ] Je voudrait savoir comment calculer a l'aide d'un chronomètre ou de nimporte quel autres manière le temps qye peut prendre un instruction.Ex:Timer sta Utilisation de Timer [ par nunette ] Je fais clignoter un bouton sur l'appel de SetTimer, mon problème: impossible de le killer pourtant je passe bien le même id à KillTimer que celui pas Changer l'intervalle d'un timer [ par Athanor ] Une fois que j'ai crée un timer avec SetTimer, comment je peut changer son intervalle? Timer en C++ [ par superteta2003 ] J'aurais un besoin urgent d'un source C++ d'un timer. Pas un truc de malade mais un prog qui fonctionne en mode console!Merci d'avance!!! AU SECOURS !!! [ par petronius ] je viens de trouver un probleme tres interessant :j'ai fait un jeu avec des IA (3) en directx, et donc un timer de 100ms qui lance les differentes IA ********TIMER********** [ par tdeco ] SLTje souhaite réaliser un timer.KELk'1 peut il m'expliquer la syntaxe k'il faut utiliser et les différents prototypes?merci Probeleme de timer [ par waaag ] bonjour!un petit souci:j'ai deux fenetres distinctes:*la MAIN (qui peut appeler la SECOND en créant son objet puis DoModal)*la SECONDj'aimerais que le Timer en MFC [ par superteta2003 ] Salut...Je dois faire une mise à jour d'une CString dans une fenetre windows toutes les seconde en utilisant un Timer... Comment faire pour que le tra timer [ par nazca ] Le Zero de la programmationNazcaSalut a tousJe veux pouvoir faire des relevés de>données à des intervalles 'dt' et pouvoir préciser l'heure de début e timer [ par nazca ] Le Zero de la programmationNazcasalut a tousj'aimerai savoir comment on fait pour cree un timer de duree variable avec l'utilisation de l'heure du sys


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales