7: Práctica de Módulos Contadores y Aplicaciones de Circuitos
Figura 7-4: Mapa de Registro CTRA/B de CTR.spin
┌────┬─────────┬────────┬────────┬───────┬──────┬──────┐
bits │ 31 │ 30..26 │ 25..23 │ 22..15 │ 14..9 │ 8..6 │ 5..0 │
├────┼─────────┼────────┼────────┼───────┼──────┼──────┤
Name │ ── │ CTRMODE │ PLLDIV │ ────── │ BPIN │ ──── │ APIN │
└────┴─────────┴────────┴────────┴───────┴──────┴──────┘
Al igual que los registros
procedimiento para asignar y limpiar en este registro es el mismo que seria para un grupo de
operaciones de pins E/S con
"POS detector":
ctra[30..26] := %01000
La Tabla de Modos Contadores y el Mapa de Registro aparecen en el Objeto CTR de la Librería Propeller
y también en el Manual Propeller en la sección CTRA/B localizada en el capítulo de Referencia Spin. APIN y
BPIN son pins de E/S que el modulo contador puede controlar, monitorear o no usar dependiendo del modo.
Note también en la Figura 7-4 como hay campos de bits para PLLDIV, BPIN, y APIN. PLLDIV es el
nombre corto para "ciclo divisor de fase cerrada" y es usado solo para modo contador PLL el cual
puede sintetizar ondas cuadradas de alta frecuencia. APIN (y BPIN para modo de dos pins) tienen que
almacenar los números de pins E/S que el modulo contador va a monitorear o controlar. En el caso
que el contador A coloque a modo POS
reloj anterior. (Vea referencia A¹ y pie de nota en la Figura 7-3). Así el bit de campo APIN tiene que
almacenar el valor 17 ya que P17 va a monitorear el circuito RC. Este es un comando que programa
los bits 5..0 del registro
ctra[5..0] := 17
Recuerde que
se agrega a
frqa
el contador identifique cuantos ciclos de reloj el pin esta en alto simplemente programe
frqa := 1
En este punto se le agrega 1 al registro
aplica a P17 está por encima del disparo lógico 1.65V. La única cosa que tiene que hacer antes de
comenzar la medición de la descarga es limpiar el registro
En suma, configurar el modulo contador para que cuente los ciclos de reloj cuando un pin E/S esta en
Alto toma 3 pasos:
1) Almacenar %01000 en el campo de bit CTRMODE del registro CTR :
ctra[30..26] := %01000
2) Almacenar en el campo APIN del registro CTR el numero de pin E/S que quiere monitorear:
ctra[5..0] := 17
3) Almacenar 1 en el registro FRQ para que el registro
reloj en el que P17 está en alto:
frqa := 1
,
e
los registros
dira
outa
ina
,
, o
. Aquí se muestra un ejemplo para hacer Counter A un
dira
outa
ina
se suma a
frqa
a 17:
ctra
con cada ciclo de reloj donde APIN está en alto. Para hacer que
phsa
por cada ciclo de reloj en el cual el voltaje que se le
phsa
Kit Educativo de Practicas Propeller: Fundamentos · Página 127
y
son bit-direccionales, así el
ctra
ctrb
basado en el estado del APIN durante el
phsa
.
phsa
agregue un 1 por cada ciclo del
phsa
a 1:
frqa