Hi,
Random number generator generates random instead of unique numbers.
It means that you can get two the same numbers in case of one random number sequence (with one seed).
You can use ranging by modulo.
random_x = rand() % 100 + 0;
after reset:
random_x = rand() % 100 + 100;
after reset:
random_x = rand() % 100 + 200;
…
However this doesn’t solve issue with two the same numbers between resets.
If you need unique number you will need compare generated number with all already generated numbers and discard when this number was already used.
Other option is that you will have field with unique numbers (e.g. all number in range 0~999) and this field will be shuffled by using random number generator. After that you can pick unique number one by one from this list.
Numbers will be unique and it will look like random numbers (in specific range).
Note: if you need really random numbers, you have to use really random seed. You can use RNGA module for generating random seed. Please check also RNGA module description in reference manual - chapter Overview. There is described how to use RNGA module for generation true random number (for true 32bit random number you will generate 32 random numbers but you will use just one bit from every number). Some of new Kinetis MCUs will have new version of this module which will generate true random numbers.
I hope it helps you.
Have a great day,
RadekS
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------