; Random test
; P. Beard 29/10/2012
#picaxe 20m2
symbol RANDSEED = w2
symbol RAND = b0
symbol TENS = b1
symbol UNITS = b2
main:
'Read random seed from non-volatile memory
read 0, word RANDSEED
'Generate a new random seed
random RANDSEED
'Save random seed back to non-volatile memory
write 0, word RANDSEED
'Pick a random number 1 to 30
RAND = RANDSEED // 30 + 1
'Break number up into tens and units
TENS = RAND / 10
UNITS = RAND // 10
'Convert the tens and units to 7-segment patterns
lookup TENS, ( %00010000, %11111100, %01001001, %11001000, %11100100, %11000010, %00000010, %11111000, %00000000, %10000000), TENS
lookup UNITS, ( %00010000, %11111100, %01001001, %11001000, %11100100, %11000010, %00000010, %11111000, %00000000, %10000000), UNITS
'Switch all pins to outputs
dirsC = %11111111
dirsB = %11111111
'Display the 7 segment patterns
pinsC = TENS
pinsB = UNITS
'Wait for a few seconds
pause 5000
'Switch off the displays
pinsC = %11111111
pinsB = %11111111
'Sleep forever until power is reset
sleep 0
end