XIN DataPin,ZeroPin,{Timeout,Label,} [Var{,...}]
Recibe datos X-10 y guarda el House Code y el Key Code en Var.
XIN se usa para recibir información de dispositivos X-10 .Los módulos X-10 están disponibles en muchos lugares y de distintos proveedores .Se requiere una interfase para conectar el micro controlador a la línea de AC .Se necesita un TW-523 para comunicaciones de dos vías para trabajar con XIN .Este dispositivo tiene la interfase a la línea de alimentación y aísla el micro controlador de la línea de AC .Como X-10 está patentado , esta interfase también cubre el licenciamiento .
DataPin es automáticamente convertido en entrada para recibir datos de la interfase X-10 .ZeroPin es automáticamente convertido en entrada para recibir el tiempo de cruce por cero de la interfase X-10 .Ambos pins pueden ser llevados a 5 volt con resistores de 4.7 K . DataPin y ZeroPin pueden ser una constante , 0 - 15 , ó una variable que contenga un número de 0-15 (p.ej. B0) ó un número de Pin (p.ej. PORTA.0)
En forma opcional se pueden incluir Timeout y Label para permitir continuar el programa ,si no se reciben datos en un lapso de tiempo determinado ..Timeout está especificado en medios ciclos de la línea de AC ( aprox. 8.33 milisegundos ).
XIN solamente procesa datos en el momento en que la línea de AC pasa por cero (en ese momento recibe ZeroPin).Si no hay transiciones en esta línea , XIN esperará que las haya .
Si Var tiene tamaño de word ,cada código House Code recibido , se guarda en el byte superior del word .Cada código Key Code recibido se guarda en el byte inferior del word .Si Var es un byte , solo se guarda el Key Code .
El Hpuse Code es un número 0-15 , que corresponde al juego House Code del módulo X-10 de A a P .
El Key Code puede ser el número de un módulo específico de X-10 ó la función que debe ser realizada por un módulo .En la práctica , primero se envía un comando especificando el número de módulo X-10 ,seguido por un comando especificando la función deseada .Algunas funciones operan en todos los módulos , por lo que el número de módulo es innecesario .Los ejemplos posteriores ayudarán a clarificar el tema .Key Code 0-15 corresponden a números de módulo 1-16 .
XOUT después lista las funciones y la información de conexionado .
Housekey var word
loop: XIN PORTA.2,PORTA.0,[housekey] ´ obtiene datos X-10
Lcdout $fe,1,”House=”,#housekey.byte1,”Key=”,#housekey.byte0 ´ muestra los datos X-10 en un LCD
Goto loop ´ por siempre
XIN PORTA.2,PORTA.0,1,nodata,[housekey] ´ chequea por datos X-10 , si no hay va
´a nodata
XOUT DataPin,ZeroPin,[HouseCode KeyCode{} {,...}]
Envía un HouseCode seguido por un KeyCode , repetidos un número Repeat de veces en formato X-10 .Si no se usa Repeat se asume 2 veces como mínimo .Repeat usualmente se usa con los comandos Bright y Dim .
XOUT se usa para enviar información de control a dispositivos X-10 .Los módulos X-10 están disponibles en muchos lugares y de distintos proveedores .Se requiere una interfase para conectar el micro controlador a la línea de AC .Se necesita un TW-523 para comunicaciones de dos vías , ó un PL-513 para enviar solamente , para trabajar con XIN .Estos dispositivos tienen la interfase a la línea de alimentación y aíslan el micro controlador de la línea de AC .Como X-10 está patentado , esta interfase también cubre el licenciamiento .
DataPin es automáticamente convertido en salida para enviar datos a la interfase X-10 .ZeroPin es automáticamente convertido en entrada para recibir el tiempo de cruce por cero de la interfase X-10 .Ambos pins pueden ser llevados a 5 volt con resistores de 4.7 K . DataPin y ZeroPin pueden ser una constante , 0 - 15 , ó una variable que contenga un número de 0-15 (p.ej. B0) ó un número de Pin (p.ej. PORTA.0)
XOUT solamente procesa datos en el momento en que la línea de AC pasa por cero (en ese momento recibe ZeroPin).Si no hay transiciones en esta línea , XIN esperará que las haya .
El House Code es un número 0-15 , que corresponde al juego House Code del módulo X-10 de A a P .El HouseCode apropiado debe ser enviado como parte de cada comando .
El Key Code puede ser el número de un módulo específico de X-10 ó la función que debe ser realizada por un módulo .En la práctica , primero se envía un comando especificando el número de módulo X-10 ,seguido por un comando especificando la función deseada .Algunas funciones operan en todos los módulos , por lo que el número de módulo es innecesario .Los ejemplos posteriores ayudarán a clarificar el tema .Key Code 0-15 corresponden a números de módulo 1-16 .
Los nombres Keycode (funciones) (p.ej. uniton) están definidos en el archivo MODEDEFS.BAS .Para usarlos ,agregue la línea :
Include “modedefs.bas”
al comienzo de su programa PBP .BS1DEFS.BAS y BS2DEFS.BAS ya incluyen MODEDEFS.BAS . No lo incluya ,si ya está usando uno de ellos .Los números KeyCode pueden ser usados sin incluir este archivo .
Conectarse a la interfase X-10 requiere 4 conexiones .La salida de la interfase X-10 ( cruce por cero y datos) es a colector abierto y necesita un resistor de aprox. 4.7 K conectado a 5 volt .La tabla siguiente muestra el xonexionado :
TW-523
house var byte
unit var byte
Inckude “modedefs,bas”
house=0 ´ coloca 0 en house (A)
unit=8 ´ coloca 8 en unit (9)
´ enciende unit 8 en house 0
XOUT PORTA.1,PORTA.0,[house unit,house unitOn]
´ apaga todas las luces en house 0
XOUT PORTA.1,PORTA.0 ,[house lightsOff]
´ parpadea la luz 0 cada 10 segundos
XOUT PORTA.1,PORTA.0 ,[house0]
loop XOUT PORTA.1 PORTA.0 ,[house]
pause 10000 ´ espera 10 segundos
XOUT PORTA.1 PORTA.0 ,[house]
pause 10000 ´ espera 10 segundos
Goto loop