Hi again,
Progress is good! Now I am trying to set a time limit on my staircase routine of 10 minutes (actually you will see in the code it is for 1 minute at the moment whilst I try and fix the code, but please ignore that).
There must either be something wrong with my clock code, or maybe is it in the wrong loop?
The programme runs fine, but is not stopping after 1 minute as I would have hoped.
Here is the relevant bits of my code:
clock=core.Clock()
clock.reset()
stop = 0
endtime = 1*60 #ends after 1 minute
for thisCondition in staircase:
#t1 = trialClock.getTime()
win.flip()
core.wait(.7)
correctStim = 6 #number of frames the correct stim will appear for. Notice it is constant
incorrectStim = correctStim + thisCondition #number of frames the incorrect (long) stim will appear for. Expressed as correctStim frames + whatever number the staircase spits out.
list = [0,1]#Randomly choose which stim will come first
order = choice(list)
if order == 0:#correctStim will be first
correctResponse = 1
for frameN in range (7):
fixation.draw()
win.flip()
etc. as stimuli are presented…
#get response
thisResp=None
while thisResp==None:
allKeys=event.waitKeys()
for thisKey in allKeys:
if (thisKey=='1' and correctResponse==1) or (thisKey=='2' and correctResponse==2):
thisResp = 1#correct
print ("correct")
elif (thisKey=='1' and correctResponse==2) or (thisKey=='2' and correctResponse==1):
thisResp = 0#incorrect
print("incorrect")
elif thisKey in ['q', 'escape']:
core.quit()#abort experiment
#t2 = trialClock.getTime()
#rt = t2 - t1
staircase.addResponse(thisResp, thisCondition)
dataFile.write('%i %i %i %i\n' %(correctResponse, correctStim, incorrectStim, thisResp))
finish = clock.getTime()
if finish>endtime:
stop = 1
if stop==1:
continueRoutine = False
Can anyone spot what I have done wrong please?
Thank you!
Christina x