Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
04/19/03 02:30
Read: times


 
#43737 - Random Number ( in software)
Hi all:

I need to generate a random number ( only 1 byte) in software.
I made a search ( before anyone tell me to do it) and found this assembler routine

;to use these pseudo-random number sequence generators, memory must be
;set aside to hold the last random number, which is used to generate the
;next one so that a randomly distributed (but predictable) sequence of
;number is generated.

.equ rand8reg, 0x20 ;one byte
.equ rand16reg, 0x21 ;two bytes

;generates an 8 bit pseudo-random number which is returned in Acc.
;one byte of memory must be available for rand8reg

rand8: mov a, rand8reg
jnz rand8b
cpl a
mov rand8reg, a
rand8b: anl a, #10111000b
mov c, p
mov a, rand8reg
rlc a
mov rand8reg, a
ret


BUT THIS IS NOT RANDOM ( sorry for shouting)

Just consider, that independent of the value of rand8reg, when you ANL A, #10111000b you are forcing a 0 in bit6 , then you rotate it
RLC A so the final number could not be greater than 127. Of course I tested for all the 255 possible value of rand8reg and found that you get only 16 different "random" numbers.

I also read about reading a free running timer but I'm using both timer with reload values very near to #255 ( my controller is a AT89C51).


Some Idea ?
Is really random the value found in a ram locatin after a power up?

Daniel

List of 17 messages in thread
TopicAuthorDate
Random Number ( in software)            01/01/70 00:00      
   RE: Random Number ( in software)            01/01/70 00:00      
      RE: Random Number ( in software)            01/01/70 00:00      
   RE: Random Number ( in software)            01/01/70 00:00      
   RE: Random Number ( in software)            01/01/70 00:00      
      RE: Random Number ( in software)            01/01/70 00:00      
   RE: Random Number ( in software)            01/01/70 00:00      
   RE: Random Number ( in software)            01/01/70 00:00      
   RE: Random Number ( in software)            01/01/70 00:00      
   RE: Random Number ( in software)            01/01/70 00:00      
      RE: Random Number ( in software)            01/01/70 00:00      
      RE: Random Number ( in software)            01/01/70 00:00      
         RE: Random Number ( in software)/ Hans            01/01/70 00:00      
            RE: Random Number ( in software)/ Hans            01/01/70 00:00      
   RE: Random Number ( in software)/ERIC            01/01/70 00:00      
      RE: Random Number ( in software)/ERIC            01/01/70 00:00      
         RE: Random Number ( in software)/            01/01/70 00:00      

Back to Subject List