Parallax Propeller Manual Del Usuario página 56

Kit educativo
Tabla de contenido

Publicidad

Práctica básica de E/S y tiempo
Intente modificar ambos programas para que solo afecte P4..P7. Note que los operadores
Post-Activo y Post-Limpio requieren menos mantenimiento ya que automáticamente activa o
limpia todos los bits en el rango especificado.
El Operador inteligente NO "
Aquí hay otros dos ejemplos de programas que hacen lo mismo. Esta vez ambos alternan patrones en
los LEDs. El de la izquierda tiene operadores familiares asignados en el ciclo
inicializa el valor
outa[4..9]
"
" en
. Si
!
outa[4..9]
outa[4..9]
(los 1's se hacen 0's, los 0's se hacen 1's). Por lo que el resultado de
Cargue cada objeto en la RAM del chip Propeller y verifique que son idénticos.
Intente duplicar la frecuencia en cada objeto.
''Archivo: LedsOnOff50Percent.spin
''Leds alternan ''encendido/apagado
el 50% del ''tiempo
PUB BlinkLeds
dira[4..9]~~
repeat
outa[4..9] := %100001
waitcnt(clkfreq/4 + cnt)
outa[4..9] := %011110
waitcnt(clkfreq/4 + cnt)
Patrones de Bit de Registro como valor Binario
Un rango de bits en un registro puede escribirse como dígitos o como número binario. Por ejemplo en
la instrucción
outa[9..4] := %000000
es un numero binario de 6 bits con valor de cero. Se pueden hacer operaciones con este valor y
colocar el resultado nuevamente en el registro. El objeto IncrementOuta agrega 1 a
vez que se repite el ciclo. El resultado será la siguiente secuencia de valores binarios desplegados en
los LEDs:
Valor Binario
%000000
%000001
%000010
%000011
%000100
%000101
etc...
%111101
%111110
%111111
Cargue IncrementOuta.spin en la RAM.
Pagina 56 · Kit Educativo de Prácticas Propeller: Fundamentos
!
"
antes del ciclo
repeat
almacena%100001 el comando
recuerde que % es el indicador de numero binario, %000000
Equivalente Decimal
0
1
2
3
4
5
61
62
63
. Después en el ciclo
!outa[4..9]
!outa[4..9]
''Archivo: LedsOnOff50PercentAgain.spin
''!Leds alternan ''encendido/apagado el
50% del ''tiempo con el operador !
PUB BlinkLeds
dira[4..9]~~
outa[4..9] := %100001
repeat
!outa[4..9]
waitcnt(clkfreq/4 + cnt)
. El de la derecha
repeat
usa el operador NO
repeat
invierte todos los bits
será %011110.
cada
outa[9..4]

Publicidad

Tabla de contenido
loading

Tabla de contenido