VAR
long stack[10]
byte cog
PUB Start(baseAddress) : success
''Inicia un nuevo parpadeo en un cog Nuevo; regresa True si tiene éxito.
''baseAddress...la dirección de la variable long que almacena el numero de pin LED.
''baseAddress + 1...la dirección de la variable long que almacena la frecuencia de
parpadeo.
Stop
success := (cog := cognew(Blink(baseAddress), @stack) + 1)
PUB Stop
''Detiene el proceso de parpadeo, si existe.
if Cog
cogstop(Cog~ - 1)
PRI Blink(baseAddress) | pin, rate, pinOld, rateOld
pin
:=
long[baseAddress][0]
rate
:=
long[baseAddress][1]
pinOld
:=
pin
rateOld
:=
rate
repeat
pin := long[baseAddress][0]
dira[pin]~~
if pin <> pinOld
dira[pinOld]~
!outa[pin]
pinOld := pin
rate := long[baseAddress][1]
waitcnt(rate/2 + cnt)
Tenga en cuenta que el punto de este ejemplo es demostrar como un objeto padre puede pasar una
dirección base a su hijo y la documentación requiere una lista de variables de tamaño especifico que
tiene ciertos valores y son declarados en cierto orden. El objeto AddressBlinkerControlWithOffsets
trabaja con el objeto AddressBlinkerWithOffsets de esta forma para desarrollar la misma aplicación
que en el ejemplo previo, selección de LED y Frecuencia por Terminal. Manteniendo la
documentación del objeto AddressBlinkerWithOffsets, AddressBlinkerControlWithOffsets declara
una variable long para almacenar
de su variable
al método
pin
En este objeto la declaración de variables es
variables se intercambia la aplicación no trabaja bien. Esto es, nuevamente, porque el objeto
AddressBlinkerWithOffsets espera recibir la dirección de una variable long que almacena el valor
, y espera la siguiente variable long consecutiva para almacenar la variable
pin
bien declarar variables long antes y después de estas dos. Es solo que
variables long y tienen que declararse en orden específico por AddressBlinkerWithOffsets. La
dirección de inicio de la lista variable también tiene que pasarse al método
este caso con
AddrBlnk.start(@pin)
diseñados para trabajar con listas de variables long en sus objetos padre.
'Cog stack space
'Cog ID
y la siguiente variable declara
pin
del objeto AddressBlinkerControl.
Start
long pin, rateDelay
.
Ponga atención en este alcance de los objetos que son
Kit Educativo de Practicas Propeller: Fundamentos · Página 117
6: Práctica de Objetos
. Así pasa la dirección
rateDelay
crucial. Si el orden de estas dos
. Ahora, está
rateDelay
y
tienen que ser
pin
rateDelay
del objeto hijo, en
start