Está en la página 1de 2

' {$STAMP BS2}

RollBtn CON 15 ' botn en Pin 15


Segs VAR OUTL 'inicializa los LEDs del display de 7 segmentos
swData VAR Byte ' datos del comando BUTTON
dieVal VAR Nib ' nuevo valor del dado
spinPos VAR Nib ' posicin del apuntador de giro del dado
doSpin VAR Nib ' para saber cuando se realiza el giro del dado
' ------------------------------------------------------------------------DecDig DATA %01111110 ' 0
DATA %00110000 ' 1
DATA %01101101 ' 2
DATA %01111001 ' 3
DATA %00110011 ' 4
DATA %01011011 ' 5
DATA %01011111 ' 6
DATA %01110000 ' 7
DATA %01111111 ' 8
DATA %01111011 ' 9
Bug
'Inicializa todas las salidas del dado para recibir datos
DATA %01000000
DATA %00100000
DATA %00010000
DATA %00001000
DATA %00000100
DATA %00000010

Inicializar:
DIRL = %01111111 ' define salidas del basic stamp
Principal:
GOSUB GetDie ' obtiene valor anterior del dado
PAUSE 5
' Verifica si est presionado el botn
BUTTON RollBtn,0,255,10,swData,1,ShowDie
GOTO Principal
ShowDie:
READ (DecDig + dieVal),Segs ' muestra el valor
PAUSE 2000 ' durante dos segundos
GOTO Principal ' repite el proceso
END
' ------------------------------------------------------------------------GetDie:
dieVal = dieVal // 9 + 1 ' limita entre 1 y 6
READ (Bug + spinPos),segs Inicializa nuevamente el dado
doSpin = doSpin + 1 // 5 ' actualiza el indicador de giro
IF doSpin > 0 THEN GetDieX ' solo si doSpin = 0
spinPos = spinPos + 1 // 6 ' actualiza el indicador de giro para mostrar del 1 al
6
GetDieX:
RETURN

También podría gustarte