Temporizar con clkfreq vs. Temporizar con Constantes
Vamos a decir que un valor constante es usado en vez de
de una forma a una frecuencia del reloj del sistema particular. Que sucede cuando la frecuencia del
reloj del sistema del chip Propeller cambia?
Guarde una copia del objeto ConstantBlinkRate como BlinkRatesWithConstants.spin.
Asegúrese que el multiplicador PLL está en
Para una señal de encendido/apagado de 1Hz cambie ambas instancias
. (La herramienta Propeller acepta guión bajo, pero no comas, el números largos
2_500_000
para hacerlos más legibles)
Cargue el objeto en la RAM del chip Propeller y verifique que el LED parpadea a 1 Hz.
Después, cambia el multiplicador PLL a
Propeller. La luz parpadea dos veces más rápido? Intente
Cuando un valor constante se usa en vez de
cambio en el evento del tiempo. Esto es porque los objetos deben usar
cambio esperado, especialmente para objetos diseñados para usarse en otros objetos. De esta forma el
programador puede escoger la mejor frecuencia de reloj para la aplicación sin tener que preocuparse
acerca si algún objeto de la aplicación se comportara diferente.
Mas Operaciones de Registros de Salida
En la sección Operaciones en grupos de Pins E/S, se asignaron valores binarios a los grupos de bits en
los registros
y
dira
outa
de E/S que usted verá en ejemplos de códigos publicados.
Los Operadores Post-Activo "
Debajo hay dos ejemplos que hacen lo mismo. Mientras que el objeto a la izquierda usa técnicas
vistas anteriormente para activar o limpiar todos los bits en
lo hace diferente con los operadores Post-Activo "
cuando todos los bits de un cierto rango tienen que activarse o limpiarse.
''Archivo: LedsOnOff.spin
''Todos los LEDs encendidos ''1/4s y
apagados 3/4s.
PUB BlinkLeds
dira[4..9] := %111111
repeat
outa[4..9] := %111111
waitcnt(clkfreq/4 + cnt)
outa[4..9] := %000000
waitcnt(clkfreq/4*3 + cnt)
Cargue cada programa en la RAM del chip Propeller y verifique que son idénticos.
Analice como el Operador Post-Activo reemplaza
.
%000000
clkfreq
. Hay muchas formas de recortar y trucos para manipular valores en grupos
~~
" y Post-Limpio "
Kit Educativo de Practicas Propeller: Fundamentos · Página 55
4: Práctica básica de E/S y tiempo
para hacer que el programa trabaje
clkfreq
para que el reloj corra a 5MHz.
pll1x
. Cargue el objeto modificado en la RAM del
pll2x
,
pll4x
pll8x
un cambio en el reloj del sistema ocasiona un
clkfreq
~
"
y
dira[4..9]
"y Post-Limpio "
". Estos operadores son útiles
~~
~
''Archivo: LedsOnOffAgain.spin
''Todos los LEDs encendidos ''1/4s y
apagados 3/4s con Post ''Activo/Limpio
PUB BlinkLeds
dira[4..9]~~
repeat
outa[4..9]~~
waitcnt(clkfreq/4 + cnt)
outa[4..9]~
waitcnt(clkfreq/4*3 + cnt)
y el Post-Limpio remplaza
:= %111111
clkfreq/2
, y
.
pll16x
cuando se necesita un
,el de la derecha
outa[4..9]
con
:=