while 1
ch = GetChar
KbWait
if (ch>48) && (ch<53)
trial(j).RT = GetSecs - startTime ;
break;
end
end
这是我的示例代码,我正在从事一项stroop任务,我希望能够gatjer反应时间。反应时间始于刺激呈现,并以钥匙按下结束。我使用上面的代码来替代整个键盘,预计数字为1-2-3-4。但是,有时所有键都可以按下,而不仅仅是1-2-3-4。我已经尝试过很多次,有时会抑制钥匙,有时却没有。我真的不明白原因。
getchar()函数等待按键,或从队列中检索以前按下的密钥:http://docs.psychtoolbox.org/getchar。可能发生的事情是,即使他们不是最近的出版社,您也在队列中读取了以前的按键。
。但是,PsychToolBox开发人员建议不要使用GetChar()函数来收集响应时间。这是由于getchar()与其他功能(例如kbcheck()的时间预期。
以下片段可用于在响应时间内对键盘进行轮询:
% find the keyscan codes for the first four number keys
% (top of the keyboard keys, number pad keys have different codes)
keysToWaitFor = [KbName('!1'), KbName('2@'), KbName('3#'), KbName('4$')];
responded = 0;
while responded == 0
[tmp,KeyTime,KeyCode] = KbCheck(-3);
if KeyCode(keysToWaitFor)
trial(j).RT = KeyTime - startTime;
responded = 1;
end
% time between iterations of KbCheck loop
WaitSecs(0.001);
end