Hola
necesito realizar una comunicacion entre pics via infrarrojos, para probar utilice un codigo que he visto en algun post del foro -que me perdone su autor por que no recuerdo su procedencia- y todo va perfecto. el problema surge cuando quiero ampliar las posibilidades del receptor mediante sensores ya que parece perderse en la instruccion SERIN...
para probarlo, utilizo dos pulsadores en el transmisor que encienden sendos leds en el receptor:
'*****************************
' Codigo del Transmisor
'*****************************
include "modedefs.bas"
define OSC 4
trisa = %00011
trisb = %00000000
porta = 0
portb = 0
bot_1 var porta.0
bot_2 var porta.1
loop:
if bot_1 = 0 then gosub led_on
if bot_2 = 0 then gosub led_off
goto loop
led_on: serout portb.1,n2400,[$FF,$FF,"OK","A"]
return
led_off: serout portb.1,n2400,[$FF,$FF,"OK","B"]
return
end
'**********************************
' Codigo del Receptor
'**********************************
include "modedefs.bas"
define OSC 4
trisa = %01001
trisb = %00000000
porta = 0
portb = 0
datos var byte
pulsa var porta.3
led_rojo var portb.1
led_verde var portb.2
Loop:
if pulsa = 0 then ambos
serin porta.0,n2400,["OK"],datos
If datos="A" then led_on
if datos="B" then led_off
goto Loop
led_on:
High led_rojo
low led_verde
goto Loop
led_off:
low led_rojo
high led_verde
goto Loop
ambos:
high led_rojo
high led_verde
goto Loop
end
ademas, en el caso del receptor, dispongo de un pulsador -var pulsa- que actua sobre porta.3 y que encenderia ambos leds a la vez pero que en relidad no hace nada...
revisando la ayuda de PBP sobre SERIN me encuentro esto: 'An optional Timeout and Label may be included to allow the program to continue if a character is not received within a certain amount of time. Timeout is specified in units of 1 millisecond.' y entiendo que el comando SERIN 'paraliza' el programa esperando que llegue algun dato. probe a indicarle un tiempo de Timeout pero el resultado fue el mismo y ya no se que mas probar. no se si lo tengo delante de las narices y no lo veo o que pasa... podeis darme una manito?
que vayan mis agradecimientos por anticipado y un saludo