You are on page 1of 2

' {$STAMP BS2}

RollBtn CON 15 ' botón 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 ' posición 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

0.swData.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 .Inicializar: DIRL = %01111111 ' define salidas del basic stamp Principal: GOSUB GetDie ' obtiene valor anterior del dado PAUSE 5 ' Verifica si está presionado el botón BUTTON RollBtn.10.ShowDie GOTO Principal ShowDie: READ (DecDig + dieVal).1.255.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).