Parallax Propeller Manual Del Usuario página 159

Kit educativo
Tabla de contenido
7: Práctica de Módulos Contadores y Aplicaciones de Circuitos
ctrb[5..0] := 27
frqb~
phsb~
'Transmite la señal por 2000 ciclos.
outa[27]~
dira[27]~~
frqb := 1
frqa := SqrWave.NcoFrqReg(2000)
repeat while phsb < 2000
frqa~
Detección de Limites más Rápido
El siguiente programa puede parar frecuencias cerca de 43.9kHz en el límite de caída. Para controlar
el número de pulsos entregados por señales más rápidas un programa en lenguaje ensamblador será
más rápido y puede detectar el límite de caída y detenerlo en un par de ciclos de reloj.
BetterCountEdges.spin monitorea una señal de 3kHz transmitida por el Contador A. En vez de
monitorear limites negativos activa el contador B para monitorear limites positivos en P27 con
ctrb[30..26] := 01010
con cada límite positivo. En vez de limpiar el registro PHS y esperar los 3000 limites positivos activa
a -3000. Por último activa el bit 27 a 1 en una variable llamada
phsb
Observe la función del operador
Cuando el comando
frqa := SquareWave.CalcFreqReg(3000)
cuadrada de 3 kHz. Como
mientras el registro
phsb
valor sea negativo. Así
mantendrá negativo hasta que
Cuando el ciclo
repeat
meta es detener la señal después de que baja. El comando
cero. El comando
waitpeq(0, |< 27, 0)
rápido porque tiene que calcular primero
calculado y almacenado en la variable
para limpiar el registro y detener la señal en salida baja después del ciclo 3000.
frqa~
Vea y lea acerca de
Cargue BetterCountEdges.spin en el chip Propeller y verifique que toca la señal de 3 kHz por
1 s.
Si usted tiene un osciloscopio asigne la señal para 10 ciclos en vez de 3000. Entonces intente
incrementar la frecuencia y vea la máxima frecuencia que se entregan 10 ciclos.
''BetterCountEdges.spin
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
and
. Activa
ctrb[5..0] := 27
en el Manual Propeller.
|<
es un bit-direccional el comando
phsb
es 1. Recuerde que el bit mas alto de un registro o variable será 1 aunque el
será 1 (no cero) mientras
phsb[31]
se suma a
frqb = 1
termina, la señal esta en alto porque estaba buscando un límite positivo. La
también se puede usar pero el programa no responde tan
|< 27
. Así el comando
a
en el Manual Propeller
waitpeq
Kit Educativo de Practicas Propeller: Fundamentos · Página 159
' P27 → salida-baja
' Inicia la señal
' Espera por 2k repeticiones
' Detiene la señal
a 1 para que se sume 1 al registro PHS
frqb
con el comando
a
se ejecuta P27 envía una onda
repeat while phsb[31]
sea negativo. El registro
phsb
3000 veces.
phsb
waitpeq(0, a, 0)
; mientras
waitpeq(0, a, 0)
permite continuar el programa hasta
waitpeq
'Reloj de Sistema → 80 MHz
.
a |< 27
se repite
se
phsb
espera hasta que P27 es
ya tiene el valor
Tabla de contenido
loading

Tabla de contenido