Práctica de Módulos Contadores y Aplicaciones de Circuitos
1 no es el único valor útil para el registro FRQ. Otros valores de registro FRQ pueden usarse para
medir el sensor de entrada para cálculos o incluso para activar actuadores. Por ejemplo FRQ puede
programarse como
clkfreq/1_000_000
frqa := clkfreq/1_000_000
Esta expresión trabaja para el sistema de reloj del chip Propeller en frecuencias que normalmente son
múltiplos de 1MHz. Por ejemplo trabajará bien con una entrada de cristal de 5 MHz pero no con una
de 4.096 MHz ya que los resultados de la frecuencia del reloj no serán múltiplos exactos de 1 MHz.
Una desventaja de valores muy grandes de FRQ es que el programa no pude necesariamente
compensar el numero de ciclos de reloj entre la limpieza del registro y poner la entrada del pin E/S a
1. Un comando que compensa esta fuente de error se puede agregar después que el ciclo de reloj se
termino y puede continuarse con un comando que convierte a una medida conveniente tal como
microsegundos.
Midiendo señales de entrada o salida. Este modo contador puede usarse para medir la duración en la cual
un pin E/S envía una señal alta y su duración en la que esa señal se aplico a la entrada E/S. La única
diferencia es la dirección del pin E/S cuando se toma la medida.
"Contando" la Medida de Descarga RC
Antes de la medición de descarga RC el capacitor deberá estar cargado. Aquí hay una pieza de código
que pone P17 como salida alta luego espera 10µs lo cual es más que suficiente para cargar el
capacitor en la red RC de la Figura 7-1.
dira[17] := outa[17] := 1
waitcnt(clkfreq/100_000 + cnt)
Para empezar la medición de la descarga limpie el registro PHS y luego ponga el pin E/S que está
cargando el capacitor como entrada:
phsa~
dira[17]~
Después de limpiar
phsa
medición. En algún tiempo el programa puede regresar y copiar el contenido del registro
variable. Por supuesto el programa deberá asegurarse de esperar suficiente tiempo para que se
complete la medición. Esto se puede hacer al muestrear el reloj, esperando a que el pin de descarga
pase a bajo o desarrollando una tarea conocida que es mayor que el tiempo de descarga.
Para completar la medición copie el registro
numero de ciclos de reloj entre
mínimo de 0 con
. Esto tendrá mayor sentido que -624 cuando la resistencia es tan baja que jala
#> 0
la salida del pin E/S de salida alta a baja.
time := (phsa – 624) #> 0
De donde viene 624?
El numero de ciclos de reloj entre phsa~ y dira[17]~ se determine reemplazando 0.01 µF capacitor con un
capacitor de 100 pF y encontrando el valor más bajo antes de que un cero se regresara. En el programa de
prueba time := phsa reemplaza time := (phsa – 624) #> 0, y el valor medible más bajo fue 625.
Pagina 128 · Kit Educativo de Prácticas Propeller: Fundamentos
para contar la descarga en microsegundos.
y
, el programa queda libre para desarrollar otras tareas durante la
dira
phsa
y
phsa~
dira[17]~
a otra variable y reste 624 de esta para contar el
. El resultado de esta resta puede programarse a un
a una
phsa