=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Date: Mon, 18 Oct 1999 20:17:26 From: "Nikolai Golovchenko" To: "pic microcontroller discussion list" Subject: Re: 12c508 "random delay" -------------------------------------------------------------------------------- Hi Kev. >I need to generate a "random" delay between 0.5 and 10 second using 12c508 >int osc, prescaled at whatever! I think that you need an n-bit random number generator that would satisfy the number of steps in the interval. Here is an 8-bit example (sorry, no code). I came across it somewhere in TI's MSP430 application notes some time ago. rnd(n) = rnd(n-1)*mult+inc n - iteration number rnd(0)= 123 - seed number mult = 221 - multiplier inc = 53 - prime number (I modeled this in MATLAB. Looks ok) Note, that result may be greater than 8 bit. Just leave only lower 8 bits. This will generate pseudo-random sequence. Addition is not a problem. Multiplication too can be found in Microchip's apps. Bye.