Autor Tema: Comunicacion de un pic con un dispositivo ethernet y un Xbee (Uso de 2 puertos)  (Leído 2156 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Marito_26

  • PIC10
  • *
  • Mensajes: 37
Buen dia

He estado trabajando con dos puertos seriales y utilizo la siguiente sintaxis
Código: C++
  1. #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, stream=LAN)   //UART por hardware
  2. #use rs232(baud=9600, xmit=PIN_B7, rcv=PIN_B6, stream=XBEE)  // UART por software
Resulta que se queda atorado en un kbhit esperando que llegue dato


Por ejemplo, primero recibo una cadena del serial LAN y al compararlo resultando que es la palabra que deseaba if(strcmp(buffer,palabra)==0), mando despues una trama de datos al serial del XBEE y se enciende el foco, y recibo satisfactoriamente la trama para procesarla.

Ahora, cuando apago el modulo Xbee, repito lo pasos anteriores hasta el momento en que enciendo el foco (mando trama al XBEE), espero recibir del Xbee (cosa que no sucedera porque apague el XBEE), pero en el kbhit se atora, y yo espero que salga de la rutina del kbhit por medio de su else si no recibo dato, me pregunto que estoy haciendo mal.

Pues funciona bien cuando esta conectado, pero cuando lo desconecto quiero saber que no me llega dato, aunque se cuelga,  y no sale del if(kbhit(XBEE)) si no recibo dato.  Agradeceria su ayuda amigos foreros
Código: C++
  1. foco_on();   //Esta funcion contiene la trama que envia al Xbee, el cual despues de esta trama el Xbee respondera enviando otra trama
  2. if(kbhit(XBEE))    //Se atora a partir de aqui cuando apago el XBEE, pero si lo prendo lo procesa bien
  3. {
  4.   output_high(LED1)   //Flag par saber si paso por aqui
  5.  
  6.   //Procesa el dato
  7. }else
  8. {
  9.  output_high(LED2)
  10. }



Desconectado Marito_26

  • PIC10
  • *
  • Mensajes: 37
Solucionado, GRACIAS