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?