Note que debido a la naturaleza "wired-OR" de los pins E/S no hay conflicto eléctrico entre
los cogs, todos ellos pueden accesar lo pins E/S simultáneamente. Depende del desarrollador
de la aplicación asegurar que no hay dos cogs que ocasionan conflicto lógico en el mismo pin
E/S durante el tiempo de ejecución. Como todos los cogs comparten todos los pins E/S, un
INA
cog puede usar
para leer pins que esta usando así como los pins que están en uso por otro
o por los demás cogs.
Usando INA
INA
Leer
para obtener el estado de los pins E/S en ese momento. Los siguientes ejemplos
Temp
asumen que
se creo en otra parte.
Temp := INA
Este ejemplo lee el estado de todos los 32 pins E/S del puerto A en
Usando el campo opcional Pin(s) el cog puede leer un pin E/S (un bit) a la vez. Por ejemplo:
Temp := INA[16]
La línea de arriba lee el estado del Pin de E/S y almacena su estado (0 o 1) en el bit mas bajo
Temp
de
; todos los otros bits de
INA
En spin el registro
rango, la cual permite leer un grupo de pins E/S al mismo tiempo sin leer otros fuera del
rango especificado. Para leer múltiples pins seguidos de E/S a la vez use una expresión de
rango (como x.y) en el campo Pin(s).
Temp := INA[18..15]
Aquí los cuatro bits mas bajos de
18, 17, 16, y 15, respectivamente y todos los demás bits de
IMPORTANTE: El orden de los valores en las expresiones de rango afecta su uso. Por
ejemplo, el siguiente ejemplo intercambia el oren del rango del ejemplo previo.
Temp := INA[15..18]
Aquí los bits 3, 2, 1, y 0 de
respectivamente. Esta es una característica poderosa para las expresiones de rangos, pero si
no se tiene cuidado puede causar extraños comportamientos y resultados no deseados.
2: Referencia de Lenguaje Spin –
'Obtiene estado de P0 a P31
'Obtiene el estado de P16
Temp
se limpian.
soporta una forma de expresión especial que se llama expresión de
'Obtiene el estado de P18:P15
Temp
(3, 2, 1, y 0) se activan a los estados de los pins E/S
'Obtiene el estado de P15:P18
Temp
se activan al estado de los pins de E/S 15, 16, 17, y 18,
INA, INB
Temp
.
Temp
se limpian a 0.