NEW: Learning electronics? Ask your questions on the new Electronics Questions & Answers site hosted by CircuitLab.
Microcontroller Programming » Easy Random Numbers
February 28, 2010 by disneyd7 |
What is the best way to generate random numbers using the MCU from the usb nerdkit? What I need to do, each iteration, is generate two different random numbers between 1 and 8. Will the rand function in C work? |
---|---|
February 28, 2010 by pbfy0 |
look at this thread |
March 01, 2010 by hevans (NerdKits Staff) |
Hi disneyd7, I think you are looking for something like the rand() function, make sure you include stdlib.h before trying to use it. It will return a random number between 0 and RAND_MAX, where RAND_MAX is the biggest integer the MCU can represent. random() is not actually choosing a random number every time you call it. What it actually does is return the next number in a series of pseudo-random numbers. You need to seed this list of pseudo-random numbers by calling srandom(). Seeding the sequence with the same number will result in the same sequence being returned every time. Note that this still results in a seemingly random sequence, you just get the same seemingly random sequence every time you run your program. If you are ok with that, then you don't need to worry about seeding your values with an actual entropy source (source of randomness). If you are looking for truly random results you need to do something fancy to seed the random number generator. For that, check out the thread pbfy0 pointed you too above. Let us know if any of this doesn't make sense. It is actually a fairly deep (but awesome) topic. Humberto |
Please log in to post a reply.
Did you know that microcontrollers have two different kinds of memory, program space (flash) and SRAM? Learn more...
|