EE 476: Laboratory 2
Reaction Time Tester.
Introduction.
For this exercise you will use the development board
to build a human reaction time tester.
The pushbuttons, LEDs, and the mcu will be used to see how fast
you can push a button after a light flashes.
Procedure:
You will need to generate a time base for measuring reaction times. Most people
have a reaction time in the range of 100 mSec to 200 mSec, but this can be quite
variable, up to several hundred mSec.I suggest that you use the multiple task
timing scheme from Lab 1.
Make sure that the switches and LEDs are connected as they were in Lab 1.
When in doubt, ask an instructor. Remember that a switch which is pushed reads
back a logic zero.
Assignment
Produce an C language program which:
- Upon a reset signal, flashs the LEDs at a few Hz and waits for a button
0 press.
- At the button press, turns the LEDs off for about 2 seconds.
Figure out a way to make the waiting time variable, so that it is harder
to predict.
- Turns on the LEDs, starts a timer and waits for a button press. (your code
should detect the cheating condition of a pressed button at t=0 and respond
by returning to the flashing LEDs).
- At the button press, computes the time between LED illumination and the
button press,
displays the number of millseconds in binary on the
LEDs, then waits.
If your reaction time is longer than 255 Msec,
then
scale the value by two before displaying it on
the LED bar. Displayed time should
be accurate to 1 mSec (unless you scaled the time by 2).
- Returns to the flashing LEDs when button 7 is pushed.
You will demonstrate the working reaction time tester to the TA in the lab.
Your written lab report should include:
- The scheme you used to detect the pushbutton state. (e.g. polling loop,
interrupt)
- How you generated the time base you used.
- Other design aspects of the assignment.
- A heavily commented listing of your code.
- Your reaction times and the reaction time of your TA.
Copyright Cornell University Jan 2002