我是 python 和 Psychopy 的新手,但是我在编程和设计实验(使用 Matlab 和 EPrime)方面拥有丰富的经验。我正在运行一个 RSVP(快速视觉串行演示)实验,每 X 毫秒显示一个不同的视觉刺激(X 是一个实验变量,可以从 100 毫秒到 1000 毫秒)。由于这是一项生理实验,我需要在刺激开始时通过并行端口发送触发器。我使用示波器和光电传感器测试触发器和视觉开始之间的同步。但是,当我在 win.flip() 之前或之后发送触发器时,即使使用窗口 waitBlanking=False 参数,我仍然会得到刺激开始和代码开始之间的差异。
附上我的代码:
im=[]
for pic in picnames:
im.append(visual.ImageStim(myWin,image=pic,pos=[0,0],autoLog=True))
myWin.flip() # to get to the next vertical blank
while tm < and t < len(codes):
im[tm].draw()
parallel.setData(codes[t]) # before
myWin.flip()
#parallel.setData(codes[t]) # after
ttime.append(myClock.getTime())
core.wait(0.01)
parallel.setData(0)
dur=(myClock.getTime()-ttime[t])*1000
while dur < stimDur-frameDurAvg+1:
dur=(myClock.getTime()-ttime[t])*1000
t=t+1
tm=tm+1
myWin.flip()
如何将我的刺激开始同步到触发器?我不确定这是否是显卡问题(我正在使用带有板载 Intel 显卡的 LCD ACER 屏幕)。非常感谢,
沙尼