Práctica de Objetos
rateDelay := 10_000_000
AddrBlnk.start(@pin, @rateDelay)
dira[4..9]~~
repeat
Debug.Str(String("Enter pin number: "))
pin := Debug.getDec
Debug.Str(String("Enter delay clock ticks:"))
rateDelay := Debug.getDec
Debug.Str(String(Debug#CR))
Mostrando Direcciones
En AddressBlinkerControl los valores de
. Las direcciones de
Debug.Dec(rateDelay)
y
Debug.Dec(@rateDelay)
Inserte comandos que desplieguen las direcciones de las variables
Terminal Parallax justo antes de que comience el ciclo
variables cada vez que se ingresan. Nota: El punto de este ejercicio en reforzar la distinción
entre un contenido de variable y su dirección.
Pasando Direcciones de Inicio a Objetos que trabajan con Lista de Variables
Algunos objetos monitorean o actualizan listas de variables long de otro cog, en este caso,
típicamente tienen documentación que explica el orden y tamaño de cada variable que el objeto padre
necesita declarar. Este tipo de métodos
dirección de inicio de la lista de variables en el objeto padre. El objeto hijo toma esa dirección y la
usa para accesar el resto de la variables en el objeto padre.
AddressBlinkerWithOffsets es un ejemplo de un objeto del que el método
de inicio de una lista de variables. Diferente a AddressBlinker su método
dirección de la variable del objeto padre que almacena el valor
variable almacene el retraso de la frecuencia de parpadeo para ser declarada, sin variables extra.
Como el parámetro
baseAddress
almacena el numero de pin,
accesara la variable que almacena la frecuencia de parpadeo. Así es como el
long[baseAddress][1]
programa obtiene ambos valores de variables con solo un parámetro de dirección.
Examine el objeto AddressBlinkerWithOffsets.spin. Note como su método
que lo usa para encontrar variables en sus objetos padre que determinan el pin y
baseAddress
el retraso en el parpadeo.
Considere como esto puede ser aplicado a listas más grandes de variables usando
considerando direcciones.
'' Archivo: AddressBlinkerWithOffsets.spin
'' Ejemplo de cog que observa variables en sus objetos padres
'' Objeto padre para declarar un long que almacena E/S LED y numero de pin
'' seguido por un long que almacena el numero de ciclos de reloj entre
'' cada cambio de estado de LED. Debe pasar la dirección del long que
'' almacena el numero de pin E/S de LED al método Start.
Pagina 116 · Kit Educativo de Prácticas Propeller: Fundamentos
y
pin
y
pin
.
Start
almacena la dirección de la variable de los objetos padre que
long[baseAddress][0]
pueden mostrarse con
rateDelay
pueden mostrarse con
rateDelay
repeat
de objetos típicamente solo esperan un valor, la
. Su documentación requiere que la
pin
almacenara este valor. En cambio
Debug.Dec(pin)
Debug.Dec(@pin
y
en la
pin
rateDelay
y muestre el valor de esas
espera la dirección
start
solo recibe la
Start
necesita un
start
y
)