Tempo

Signaler
Messages postés
15
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
11 décembre 2007
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
Bonjour a tous

Je travail en ce moment sur une carte E/S avec une liaison USB et une supervision en VB, ce n'est pas la premiere que je fais mais la j'ai un probleme, je dois creer une temporisation entre 2 etats d'une sortie donc ma première solution etait de l'effectuer avec un timer qui incremente une variable toute les secondes ( interval =1000)
le gros hic c'est que ce n'est pas precis du tout alors que je veut une precision a la seconde
si quelqu'un a une solution ca serait sympa de sa part de me la présentée.
une idée peut etre d'utiliser l'horloge du PC ??????
je sai qu'il existe déja cette question sur des forums mais aucune a une reponse claire et précise

remercie par avance

Lmarengo

14 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Et un petit truc du genre(By Jmfmarques) :

Private Sub attente(duree)
  depart = Timer
  While Timer < depart + duree
   DoEvents
  Wend
End Sub

Uitilsation :
attente 0.3  'règle ici le "pas" que tu veux

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
15
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
11 décembre 2007

A quoi sert le Doevent, c juste pour mieu comprendre c'est totalement indépendant d'un timer mais ca se base sur koi ???? 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Le DoEvents sert à rien la main au système qui peut traiter lui d'autre chose dans ton application....Pour plus d'explication, regarde avec ton aide en ligne....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
15
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
11 décembre 2007

Je te remercie pour ton aide Exploreur et
@bientot
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
oups...faut lire :  Le DoEvents sert à Rendre la main .... 

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
15
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
11 décembre 2007

Il n'est pas pôssible d'envoyé 2 attentes en meme temps ?????
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Essaye en faisant 2 sub's.....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
15
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
11 décembre 2007

je viens de le faire mais le probleme est que j'ai 5 commandes en groupe

 Private sub Commande_click(index as integer)

sortie(index) = 1
attente_on(10)
sortie(index)=0
attente_off(10)

end sub

index me permet d'indiqué quelle sortie il actionne mai le probleme est que je peux en actionné qu'une a la fois alors que je voudrai les actionnées indépendemment
Messages postés
15
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
11 décembre 2007

De plus j'aimerai lorsque j'appui sur une command activé une boucle et lorsque je rappuie sue ce meme bouton ca desactive cette boucle
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Re,

Pour ton dernier post, sert toi d'une variable déclarée en Static de type boolean...(je pense...)

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
re,

Voici un exemple à adapter à ton besoin(et il y a sûrement plus court je pense) :

Private Sub Command1_Click()


    Static MyStop As Integer
        If MyStop 1 Then MyStop 2 Else MyStop = 0
        
    Do While Not MyStop = 2
      MyStop = 1
      Text1.Text = Format(Time, "hh:mm:ss")
      DoEvents
    Loop
   
End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Messages postés
15
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
11 décembre 2007

je te remercie pour ton aide
@ bientot
Messages postés
15
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
11 décembre 2007

Bonjour a tous


Cette solution pour un timer est tres dangereuse a appliquer car lors de la fermeture de la form principal, si la durée de cette temporisation n'est pas terminée on croit fermer le programme mai les tempos continue en tache de fond et le programme n est pas vraiment fermé

Le probleme qui se pose est que je voudrait utiliser le composant Timer deja existant mai voila kan on en met 2 ils se synchronisent la question que je me pose est  que si les 2 timers ont le meme interval a t'on ce probleme ??????

merci d avance
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Ben, faut faire à ce moment quand tu fermes la Form :

Timer1.Enabled = False ' Arrête de Timer
Unload Me

A+
Exploreur

 Linux a un noyau, Windows un pépin