Prácticas de Métodos y Cogs
Figura 5-1: Esquema de botones pulsadores LED
Definiendo un comportamiento de Método con variables locales
El objeto AnotherBlinker muestra el uso de tres variables,
comportamiento encendido/apagado de su ciclo
programadas hace que P4 parpadee a 3 Hz por 9 repeticiones encendido/apagado. Como el ciclo
solo cambia el estado del LED (en vez de un ciclo completo) el objeto necesita dos veces más
repeat
el numero de estados de cambio y la mitad del retraso especificado entre cada cambio de estado. Así
la variable
se multiplica * 2 en vez de solo
reps
vez de
para el rango de parpadeo de 3Hz.
rate
Corra el objeto AnotherBlinker.spin y verifique que hace que el LED P4 parpadee a 3Hz por
9 repeticiones.
Pruebe una variedad de valores para
el comportamiento del ciclo
'' AnotherBlinker.spin
PUB Blink | pin, rate, reps
pin := 4
rate := clkfreq/3
reps := 9
dira[pin]~~
outa[pin]~
repeat reps * 2
waitcnt(rate/2 + cnt)
!outa[pin]
Llamando un Método
El método
se usa nuevamente en el siguiente objeto ejemplo CallBlink, junto con otro método
Blink
llamado
. La Figure 5-2 muestra como el método
Main
ejecución del programa comienza en
línea
en el método
Blink
pequeña de una llamada de método. Cuando el método
Pagina 70 · Kit Educativo de Prácticas Propeller: Fundamentos
reps
,
pin
.
repeat
, en el primer bloque
Main
el control del programa pasa al método
Main
,
pin
rate
de LED. Con las variables actuales
repeat
y también el comando
y
y verifique que definen correctamente
rate
reps
se llama desde el método
Blink
. Cuando el programa llega a la
PUB
termina de parpadear el LED 9 veces el
Blink
, y
, para definir el
reps
utiliza
waitcnt
rate/2
. La
Main
. Esta es una versión
Blink
en