Deteniendo (Y Reiniciando) La Señal - Parallax Propeller Manual Del Usuario

Kit educativo
Tabla de contenido

Publicidad

Práctica de Módulos Contadores y Aplicaciones de Circuitos
Ejemplo de Onda Cuadrada
El objeto SquareWaveTest.spin de abajo toca una onda cuadrada de la versión de onda cuadrada de
Do en la 7ma octava por un Segundo.
Examine el objeto SquareWaveTest, compárelo con los pasos 1 a 3 que acabamos de discutir.
Cargue el objeto SquareWaveTest en el chip Propeller. Córralo y verifique que toca un tono.
Cambie
frqa := 112_367
más alta.
Cargue el objeto modificado en el chip Propeller. Esta vez la nota deberá sonar a un tono más
agudo.
''SquareWaveTest.spin
''Envía onda cuadrada de 2093 Hz a P27 por 1 s con el modulo contador.
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
PUB TestFrequency
'Configura modulo ctra
ctra[30..26] := %00100
ctra[5..0] := 27
frqa := 112_367
'Transmite la señal por 1 s
dira[27]~~
waitcnt(clkfreq + cnt)
Deteniendo (y reiniciando) la Señal
En el objeto SquareWaveTest el cog se queda sin comandos, así el tono se detiene porque el
programa termina. En muchos casos se quiere detener y reiniciar la señal. Los 3 caminos más
sencillos de detener (y comenzar) la señal de transmisión son:
1) Cambien la dirección del pin E/S a entrada. En el objeto SquareWaveTest esto podría
hacerse con
dira[27] := 0
(Para reiniciar la señal use
2) Detenga el contador limpiando los bits CTR 30..26. En el objeto SquareWaveTest se
puede hacer con
campo de bits CTRMODE del registro
el pin E/S es aun una salida y su estado de salida puede ser alto o bajo. Después
examinaremos una forma de asegurarse que la señal termina cuando el pin E/S está
transmitiendo una señal baja. (Para reiniciar copie %00100 nuevamente en
3) Detenga la suma a PHS al activar FRQ a 0. En el objeto SquareWaveTest se puede hacer
con
o
frqa := 0
el bit 31 de
phsa
contador el pin E/S detendrá el estado de salida que tenía en el momento que se limpio
(Para reiniciar la señal use
El objeto Staccato cambia el pin E/S entre salida y entrada para iniciar el tono 2.093 Khz y detener a
15Hz for 1 s. Se usa el método 1 para iniciar y detener la señal. Su trabajo será modificar dos copias
del código para hacerlo a través de las opciones 2 y 3.
Pagina 144 · Kit Educativo de Prácticas Propeller: Fundamentos
a
frqa := 224_734
' Programa clkfreq = 80 MHz.
' Activa ctra for "NCO sencillo"
' Activa APIN a P27
' Activa frqa a 2093 Hz (Do)
' FRQA/B = frecuencia × (2^32 ÷ clkfreq)
' Activa P27 a salida
' Espera por tono para tocar 1 s
o
dira[27]~
dira[27] := 1
. Otra forma de hacerlo es activando todos los bits en el
ctra[30..26] := 0
ctra
. El contador podría correr pero como agregara un cero a
frqa~
no cambiara, así el pin E/S también dejara de cambiar. Igual de detener el
frqa := 112_367
. Eso es Do 8, la nota Do en la siguiente octava
usando:
cuando el programa está listo para detener la señal.
o
.)
dira[27]~~
con
. En cualquiera de los casos
ctra[30..26]~
).
).
ctra[30..26]
con cada
phsa
.
frqa

Publicidad

Tabla de contenido
loading

Tabla de contenido