Práctica básica de E/S y tiempo
Ejemplo de Variable
El objeto ButtonShiftSpeed que se muestra abajo es una versión extendida de ShiftRightP9toP4 que le
permite usar los botones para controlar la velocidad a la cual el LED cambiara su posición a la
derecha. Si usted sostiene el botón P21 la velocidad baja; si sostiene el botón en P22 la velocidad
sube. El control de velocidad se hace posible al almacenar un valor en una variable. El patrón que se
mueve también es almacenado en una variable, haciendo posible un numero de patrones que no se
pueden alcanzar desarrollando operaciones de movimiento en los bits en
Cargue ButtonShiftSpeed.spin en la RAM.
Intente presionar P22 y observe el cambio en el comportamiento del LED, después presione
el botón P21.
'' Archivo: ButtonShiftSpeed.spin
'' El LED se mueve de izquierda a derecha a velocidad variable presionando los botones.
VAR
Byte pattern, divide
PUB ShiftLedsLeft
dira[9..4] ~~
divide := 5
repeat
if pattern == 0
pattern := %11000000
if ina[22] == 1
divide ++
divide <#= 254
elseif ina[21] == 1
divide --
divide #>= 1
waitcnt(clkfreq/divide + cnt)
outa[9..4] := pattern
pattern >>= 1
ButtonShiftSpeed tiene un bloque variable (
. La variable
divide
pattern
almacena un valor que divide a
divide
es una de las tres opciones para declarar variables y puede almacenar un valor desde 0 hasta 255.
Byte
Otras opciones son
word
arreglos de variables especificando el número de elementos en corchetes a la derecha del nombre de
la variable. Por ejemplo myBytes[20] será un arreglo de 20 elementos de nombre myBytes. Esto pone
a disposición las variables
El primer bloque
en el ciclo
if
, la sentencia
outa[9..4]
reasigna a
el valor de
pattern
Pagina 62 · Kit Educativo de Prácticas Propeller: Fundamentos
VAR
almacena el patrón del bit que se manipula y se copia a
para un retraso de longitud variable
clkfreq
(0 a 65535) y
(-2,147,483,648 a 2,147,483,647). Pueden declararse
long
[0],
myBytes
myBytes[1]
se comporta similar al del objeto ShiftRightP9toP4. En vez de
repeat
examina el contenido de la variable
if
.
%11000000
outa[9..4]
) que declara dos variables de un byte,
,
,...,
myBytes[2]
myBytes[18]
y si es cero la siguiente línea
pattern
.
y
pattern
, y
outa[9..4]
, y
.
myBytes[19]