Jump to content

Vertical Sync


Recommended Posts

Hello,

I am working on a project which requires me to record reaction time with millisecond accuracy. Labview 8 is able to run at 1000hz in Windows, however I have to know the delay from the program to the monitor (as Windows is performing several tasks, this time is unknown). One way to do this is using the vertical sync (directx). Is there any way to access Directx in Labview or is there any other way to get my timing?

Link to comment

Hi Bjorn:

Welcome to the forum :)

I've had very bad luck trying to use anything running in the Windows environment for reliable and accurate timing. LabView is no exception. So if your application requires 100% reliability-- no incorrect measurements-- I think you are out of luck without using a hardware timer.

Most all of the NI A/D cards have hardware counter-timers built in which could be used for reliable timing measurment-- even under windows-- but in this case you would need the card, and also need to wire up an indicator and a switch to it for the reaction time measurement.

Others may have more experience with DirectX than I, and may be able to make good suggestions, but I would be surprised if there was an easy solution without adding some hardware.

Best Regards, Louis

Link to comment
Hello,

I am working on a project which requires me to record reaction time with millisecond accuracy. Labview 8 is able to run at 1000hz in Windows, however I have to know the delay from the program to the monitor (as Windows is performing several tasks, this time is unknown). One way to do this is using the vertical sync (directx). Is there any way to access Directx in Labview or is there any other way to get my timing?

Hi Bjorn,

I wrote a simple VI showing how you MIGHT be able to do this in LabVIEW. A couple of points: 1) although the block diagram can run at kilohertz rates, front panel updates are typically at less than 100 Hz. The refresh rate on my LCD monitor is only 75 Hz and televisions refresh at 25 - 30 Hz. 2) LabVIEW splits the block diagram code from the user interface code to keep the block diagram from waiting on the UI. You can force the block diagram and the UI to synchronize by selecting Advanced>>Synchronous Display from a control's (or indicator's) pop-up menu. What ever loop this control or indicator is in will run in sync with the UI. Other parallel loops will continue to run at full speed.

The example VI takes advantage of synchronous display to timestamp the flash of a data point on an XY graph, and uses the built-in timestamp provided by the event structure to calculate the difference between the flash and any keypress.

Hope this helps get you started,

RichardDownload File:post-724-1138901208.vi

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.