Práctica de Módulos Contadores y Aplicaciones de Circuitos
tomara quizá un poco mas de tiempo para cargar. El retraso antes de comenzar la medición puede
incrementarse de 10 μs a 100 μs cambiando
' Carga Circuitos RC.
dira[17] := outa[17] := 1
dira[25] := outa[25] := 1
waitcnt(clkfreq/10_000 + cnt)
Como los módulos contadores están midiendo el tiempo de descarga el Cog puede empezar cada
medición en sucesión rápida sin esperar a que termine la primera antes de comenzar la segunda. La
medición del potenciómetro empieza al limpiar
E/S se convierte en entrada. Como entrada no entrega ninguna carga al capacitor y comienza la
descarga. Posteriormente la medición del fototransistor comienza limpiando
' Comienzan mediciones de descarga RC...
phsa~
dira[17]~
phsb~
dira[25]~
Después de que ha pasado suficiente tiempo el contenido de un registro de fase puede copiarse en la
variable
y el otro en la variable
time[0]
' Mediciones listas por largo tiempo. Ajuste ciclos entre phsa~
' y dira[17]~. Repita para phsb.
time[0] := (phsa - 624) #> 0
time[1] := (phsb - 624) #> 0
Al final pero no menos importante despliegue ambos resultados:
' Despliega Resultados
debug.Str(String(13, "time[0] = "))
debug.Dec(time[0])
debug.Str(String(13, "time[1] = "))
debug.Dec(time[1])
waitcnt(clkfreq/2 + cnt)
Haga una copia de TestRcDecay.spin.
Use el enfoque discutido para modificar la copia y medir el circuito de la Figura 7-1 y la
Figura 7-6 al mismo tiempo.
El código no tiene que esperar por un periodo fijo de tiempo antes de verificar los registros. Puede
encontrar si se realizo una medición verificando el estado del pin E/S. Después de que la medición de
descarga comenzó si
ina[17]
no se debe verificar
phsa
almacena un 1 la medición de la luz aun esta en proceso y no se tiene que verificar
ina[25]
todavía. Hay una modificación sencilla que hace que el Cog espere a que terminen ambas mediciones
antes de copiar el contenido de los registros a las variables
' Espera a que terminen ambas mediciones. Estonces ajusta los ciclos
' entre phsa~ y dira[17]~. Repite para phsb.
repeat until ina[17] == 0 and ina[25] == 0
Pagina 132 · Kit Educativo de Prácticas Propeller: Fundamentos
clkfeq/100_000
phsa
:
time[1]
almacena un 1 significa que la descarga aun está en proceso por lo que
todavía. Si en cambio almacena un 0 la medición se completó. Igualmente si
a
.
clkfreq/10_000
' Activa pin a salida-alta
' Activa pin a salida-alta
' Espera a cargar el circuito
y
. Cuando se limpia
dira[17]
phsb
' Limpia registro phsa
' Pin a entrada detiene carga
' Limpia registro phsb
' Pin a entrada detiene carga
:
time
el pin
dira[17]
y
:
dira[25]
phsb