| ??? 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 |
| Topic | Author | Date |
| 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 |



