hallo ,
der folgende Code ergibt keine vollständige Serielle Ausgabe
(original Code von hier, angepasst: https://stackoverflow.com/questions/...r-based-on-lcg)
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(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(i==0; i<10; i++) { prng=rand_LCG(); Serial.print(i); Serial.print(" "); Serial.println(prng); } Serial.println(); } //-------------------------------------------- // loop //-------------------------------------------- void loop() { delay(2000); }
auf dem ESP8266 wird nur die erste, aber nicht die 2. for-Schleife angezeigt, dann hängt er sich auf:
Code:starting... srand_LCG() seed=1 0 16838 1 14666 2 10953 3 11665 4 7451 5 26316 6 27974 7 27550 8 31532 9 5572 srand_LCG() seed=2
auf dem Due aber wird gar keine for-Schleife mehr angezeigt:
Wo zum .... steckt der Fehler?Code:starting... srand_LCG() seed=1 srand_LCG() seed=2







Zitieren



Lesezeichen