Cargue CogStartStopWithButton.spin en el chip Propeller y use el botón P23 para iniciar el
método
en los otros seis Cogs.
Blink
Presione por diversos tiempos para que el LED obviamente parpadee a diferente frecuencia
Asegúrese de presionar/soltar el botón P23 al menos 12 veces para iniciar y después apagar
los Cogs del 1 al 7.
'' Archivo: CogStartStopWithButton.spin
'' Inicia métodos en Cogs y detiene Cogs en las estructuras de ciclo que
'' avanzan por pulsación de botón
VAR
long stack[60]
PUB ButtonBlinkTime | time, index, cog[6]
repeat
repeat index from 0 to 5
time := ButtonTime(23)
cog[index] := cognew(Blink(index + 4, time, 1_000_000), @stack[index * 10])
repeat index from 5 to 0
ButtonTime(23)
cogstop(cog[index])
PUB Blink( pin, rate, reps)
dira[pin]~~
outa[pin]~
repeat reps * 2
waitcnt(rate/2 + cnt)
!outa[pin]
PUB ButtonTime(pin) : delta | time1, time2
repeat until ina[pin] == 1
time1 := cnt
repeat until ina[pin] == 0
time2 := cnt
delta := time2 - time1
Dentro de ButtonBlinkTime
El método
ButtonBlinkTime
locales:
,
, y un arreglo llamado
time
index
declaración del método repite el resto de los comandos en el método ya que están indentados. Debido
a que este comando
repeat
indefinidamente.
PUB ButtonBlinkTime | time, index, cog[6]
repeat
El primer ciclo anidado
que repite es
time := ButtonTime(23)
del objeto CogStartStopWithButton se declara con ocho variables
cog
no tiene condiciones el resto de los comandos en el método se repiten
incrementa la variable
repeat
, el cual tiene un nuevo lapso de tiempo por la presión del botón
Kit Educativo de Practicas Propeller: Fundamentos · Página 79
5: Prácticas de Métodos y Cogs
con seis elementos. El comando
de 0 a 5 cada vez. El primer comando
index
bajo la
repeat