I tried a simple code including the following lines. So the screen was flickering at 15 Hz, with 60 Hz of monitor refresh rate.
...
waitframe = 1;
ifi = Screen('GetFlipInterval',w);
tvbl = Screen('Flip',w);
tvbls = [];
k = 1;
while ~KbCheck
Screen('FillRect',w,128-127*(-1)^k);
tvbl = Screen('Flip',w,tvbl+(waitframe-0.5)*ifi);
tvbls = [tvbls tvbl];
k = 3-k;
end
...
I though the result of diff(tvbls) would be around .033 (i.e. 2*ifi). But I found they were around .0267. But if waitframe was set to zero, i.e. the screen flip at every vertical retrace, diff(tvbls) became closely around .016. Why?
...
waitframe = 1;
ifi = Screen('GetFlipInterval',w);
tvbl = Screen('Flip',w);
tvbls = [];
k = 1;
while ~KbCheck
Screen('FillRect',w,128-127*(-1)^k);
tvbl = Screen('Flip',w,tvbl+(waitframe-0.5)*ifi);
tvbls = [tvbls tvbl];
k = 3-k;
end
...
I though the result of diff(tvbls) would be around .033 (i.e. 2*ifi). But I found they were around .0267. But if waitframe was set to zero, i.e. the screen flip at every vertical retrace, diff(tvbls) became closely around .016. Why?