So würde ich das machen:
Code://********************************************// randomize functions //******************************************** uint32_t getSeed() { return (millis() + analogRead(A0)) ; } //----------------------------------------------------- // Linear Congruence Generator, LCG //----------------------------------------------------- static uint32_t _RandNum_ = 1; int rand_LCG() { uint32_t a = 1103515245ul, c = 12345; _RandNum_ = a * _RandNum_ + c; _RandNum_ = (uint16_t)(_RandNum_ / 65536); return (_RandNum_ % 32768) ; } void srand_LCG(uint32_t seed) { _RandNum_ = seed; } //-------------------------------------------- // setup //-------------------------------------------- void setup() { Serial.begin(115200); delay(2000); Serial.println("starting..."); Serial.println(); volatile uint32_t prng, seed; int16_t i; char buf[30]; Serial.print("srand_LCG() seed="); seed=1; Serial.println(seed); srand_LCG(seed); //Serial.println(_RandNum_); for(int i=0; i<10; i++) { prng=rand_LCG(); Serial.print(i); Serial.print(" "); Serial.println(prng); } Serial.println(); Serial.print("srand_LCG() seed="); seed=2; Serial.println(seed); srand_LCG(seed); //Serial.println(_RandNum_); for(int i=0; i<10; i++) { prng=rand_LCG(); Serial.print(i); Serial.print(" "); Serial.println(prng); } Serial.println(); } //-------------------------------------------- // loop //-------------------------------------------- void loop() { delay(2000); }







Zitieren

Lesezeichen