Parallax Propeller Manual Del Usuario página 161

Kit educativo
Tabla de contenido
7: Práctica de Módulos Contadores y Aplicaciones de Circuitos
Cargue SinglePulseWithCounter.spin en el chip Propeller y verifique que envía un pulso de 1
segundo. Este pulso durara exactamente 80,000,000 ciclos de reloj.
Con el chip Propeller corriendo a 80 MHz el pin cambiara a alto nuevamente después de
aproximadamente 26.84 segundos después. Verifique esto con una calculadora y esperando
27 segundos después de que la señal alta de 1 segundo término.
Si tiene un osciloscopio intente programar el registro PHS a -1 y vea como puede detector el
pulso de 12.5 ns que transmite el chip Propeller.
clkfreq/1_000_000
''SinglePulseWithCounter.spin
''Envía un pulso alto al LED en P4 que dura exactamente 80_000_000 ciclos de reloj
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
PUB TestPwm | tc, tHa, tHb, ti, t
ctra[30..26] := %00100
ctra[5..0] := 4
frqa := 1
dira[4]~~
phsa := - clkfreq
' Mantiene corriendo el programa y el pulso tiene tiempo para terminar.
repeat
Modulación de Ancho de Pulso
Para una señal repetitiva PWM el programa tiene que establecer el tiempo de ciclo usando
Entonces la duración de pulso se determina cada vez a través del ciclo activando el registro PHS a un
valor negativo al principio del ciclo.
El objeto 1Hz25PercentDutyCycle.spin parpadea el LED cada Segundo por 0.25 segundos. El ciclo
repite una vez cada segundo y el contador envía una señal alta al LED P4 por ¼ s con cada
repeat
repetición. EL comando
de ciclos de reloj en un segundo. El comando
modulo contador A a ¼ s. El comando
Después un ciclo
repeat
inicia el pulso que durara exactamente
, a
, el tiempo meta para el siguiente ciclo. El comando
clkfreq
t
ciclos en 1 s antes de repetir el ciclo.
Corra el programa y verifique la señal alta de ¼ s cada 1 s en el LED conectado a P4
Si tiene un osciloscopio intente una señal que dure 1.5 ms, repetida cada 20 ms. Esto podría
ser bueno para hacer que un servo detenga su posición central.
''1Hz25PercentDutyCycle.spin
''Envía una señal de 1 Hz a 25% del ciclo de trabajo al LED en P4.
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
por un pulso de 1 µs.
activa la variable que detiene el tiempo de ciclo a el numero
tC := clkfreq
t := cnt
administra el tren de pulso. Empieza enviando
clkfreq
Kit Educativo de Practicas Propeller: Fundamentos · Página 161
También intente programar
' Reloj de Sistema → 80 MHz
' Configura Contador A a NCO
' Envía el pulso
activa el tiempo en alto para el
tHa := clkfreq/4
graba el registro
a un tiempo inicial.
cnt
/4 ciclos. Después suma
waitcnt(t)
' Reloj de Sistema → 80 MHz
phsa
waitcnt
igual a
, lo cual
phsa
-tHa
, el tiempo de ciclo de
tC
espera el numero de
a
.
Tabla de contenido
loading

Tabla de contenido