GetChar() 函数等待按键,或从队列中检索先前按下的键:http: //docs.psychtoolbox.org/GetChar。可能发生的情况是队列中有先前的按键被 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