# Fwd: Re: \[psychtoolbox\] new user: exact timing for display

**URL:** <https://psychtoolbox.discourse.group/t/fwd-re-psychtoolbox-new-user-exact-timing-for-display/1411>\
**Category:** Uncategorized\
**Created:** [June 16, 2002, 2:22am UTC](https://psychtoolbox.discourse.group/t/fwd-re-psychtoolbox-new-user-exact-timing-for-display/1411 "2002-06-16T02:22:19Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![denispelli](https://avatars.discourse-cdn.com/v4/letter/d/cdc98d/32.png) [@denispelli](https://psychtoolbox.discourse.group/u/denispelli)\
**Post date:** [June 16, 2002, 2:22am UTC](https://psychtoolbox.discourse.group/t/fwd-re-psychtoolbox-new-user-exact-timing-for-display/1411/1 "2002-06-16T02:22:19Z")

</div>

> \>  
> \>\>Hi,  
> \>\> I'm a new user of the great toolbox. Here is a really elementary  
> \>\>question:  
> \>\>   
> \>\> My monitor is 75Hz, which would yield a 13.3ms/frame rate.  
> \>\> How do I precisely present an image for, say 1 frame, or just 2  
> \>\>frames? I used the following code to check, and the time that's  
> \>\>returned is some non-multiples of 13.3ms, I don't know what this  
> \>\>exactly mean for the actual amount of time that the window is on.  
> \>\>  
> \>\> FRAMERATE = 13.3333;  
> \>\> RED = [255 0 0];  
> \>\> BLACK = [0 0 0];  
> \>\> w = SCREEN(0, 'openwindow', BLACK);  
> \>\> ow = SCREEN(w, 'openoffscreenwindow', RED);  
> \>\> Start = getsecs \* 1000  
> \>\> End = S + FRAMERATE \* 1 % or 2  
> \>\> tic  
> \>\> while 1000\*getsecs \< End  
> \>\> SCREEN('copywindow', ow, w);  
> \>\> end  
> \>\> time = toc\*1000;  
> \>\>  
> \>\> Thank you!  
> \>\>Fei FEi  
> \>  
> \>dear fei  
> \>  
> \>as you've realized, it's important to synchronize your software to   
> \>the display. We do this by waiting for "blanking", which is the   
> \>period of about 1 ms during which a CRT monitor is blank a the end   
> \>of every frame.  
> \>  
> \>CopyWindow does not wait for blanking; it just copies to the   
> \>graphic-card memory whenever you ask it to. If your image is small   
> \>it might be able to do that many times during the time your display   
> \>takes to show one frame.  
> \>  
> \>add "SCREEN(w,'WaitBlanking')" inside your loop.  
> \>  
> \>for an example, see MovieDemo. (try typing "help psychdemos" for a   
> \>list of demos.)  
> \>  
> \>best  
> \>  
> \>denis  
> \>  
> \>p.s. TIC and TOC are handy and clever, but their timebase is rotten   
> \>compared to that of GETSECS, so you'll be better off using GETSECS   
> \>to do all your timing.  
> \>  
> \>also, there is a useful function called FrameRate, so you might be   
> \>better off giving your FRAMERATE variable a different name that   
> \>doesn't conflict, because MATLAB doesn't always notice differences   
> \>in capitalization.
