cancel
Showing results for 
Search instead for 
Did you mean: 

Reaction Timer

mathew086
Associate II
Posted on November 10, 2011 at 15:52

I would like to learn how to control the STR9 to create a reation timer program.  When a button is pressed the unit waits a random time interval (between four and eight seconds) then begins incrementing LEDs on a bargraph display so that they appear to 'rise' upwards. When the user sees the LEDs moving, he presses a 'stop' button as soon as possible - the earlier the button is pressed, the fewer LEDs that are lit. 

Can anyone show an example how to start with this??

Thanks

#reaction #timer #divide-and-conquer
3 REPLIES 3
Andrew Neil
Evangelist III
Posted on November 12, 2011 at 18:41

If you can't solve a problem straight off, you need to break it down & down until you reach smaller sub-problems that you can solve.

This is the standard approach to any project; so best to start learning it now - rather than just ask for ready-made solutions.

Think about the basic elements you're going to need:

  • Sensing inputs - for the button;
  • Driving outputs - for the LEDs;
  • Timing.

You should easily be able to find examples of these elements.

Note that an ARM9 is vastly overkill for this task - so your first simplifying step could be to start on a much simpler processor; eg, an STM8...
mathew086
Associate II
Posted on November 16, 2011 at 14:40

Thnx andrew... As u mentioned , i divided thw hole task to start with a simple approach

1) Clear  & Initialize LCD

2) Pressing and Initiating  START button.

3) If the START Button is pressed,

Start a timer count down. The counter should start at a random number and when it is reached, the LED have to start blinking in an incrementing way. ( 8 LEDs). This should continue moving back and forth as long as a STOP button is pressed.

3.1) The LED incrmenting should be also time dependant.abt  50ms between each LED step.

4)When the stop button is pressed, It shows the delay in LCD

I will try to go through each step one by one

mathew086
Associate II
Posted on November 16, 2011 at 22:48

I have a small question.

for (n = 0xFF; n != 0x00; n >>= 1) 

This line makes the LEDs to start from one corner (P7.0 to P7.7) in an increasing way. How do i adjust this LED blinking with a specified time interval.( random time )??

Also how do i intialize S2 and S3 for a specified task.? I couldnot find the initialization in anywhere.