Timer qui calculer un temps ne dépassant pas une seconde

Bonjour à tous,

Je travaille avec Excel2007 et VBA.
Je récupère à travers le port série un signal (en utilisant MSCOMM). Ce signal est nul au début, puis il devient non nul pendant des dizaines ou centaines de millisecondes, et finit par revenir à zéro.
Je veux calculer le temps pendant lequel le signal est non nul.
j'ai donc besoin d'un timer dont la résolution est 1ms pour qu'il puisse calculer un temps qui ne dépasse pas une seconde.
Quelqu'un pourrait m'aider?
Merci d'avance..

3 réponses

  1. Bonjour,

    l'instruction Timer vous donne un temps avec 8 chiffres apres la virgule ou le point selon le type de separateur.

    Comment lancez-vous et stoppez-vous l'acquisition ?????
    0
    1. Bonjour,

      je lance l'acquisition en appuyant sur un bouton, et je l'ai programmée à être arrêtée une seconde après son lancement.
      Moi je connais l'instruction TimeValue("00:00:00") qui ne donne que 6 chiffres, pourriez vous me donner plus d'informations concernant l'instruction Timer dont vous m'avez parlé?
      Merci
      0
      1. Bonjour,

        TimeValue("00:00:00") qui ne donne que 6 chiffres Non, c'est hh:mm:ss

        aide excel: Timer

        Timer, fonction, exemple: ici deux chiffres apres la virgule

        Cet exemple utilise la fonction Timer pour mettre l'application sur pause. Cet exemple utilise également la fonction DoEvents pour donner le contrôle à d'autres processus pendant la pause.

        Dim PauseTime, Start, Finish, TotalTime
        If (MsgBox("Cliquez sur Oui pour effectuer une pause de 5 secondes", 4)) = vbYes Then
            PauseTime = 5    ' Définit la durée.
            Start = Timer    ' Définit l'heure de début.
            Do While Timer < Start + PauseTime
                DoEvents    ' Donne le contrôle à d'autres processus.
            Loop
            Finish = Timer    ' Définit l'heure de fin.
            TotalTime = Finish - Start    ' Calcule la durée totale.
            MsgBox "Pause de " & TotalTime & " seconde(s)"
        Else
            End
        End If
        


        la: 7 chiffres apres la virgule

        Sub test()
            Dim x As Double
            x = Timer
        End Sub
        
        0