Error de captura respuesta de Modem picbasic

Un cordial saludos ...
Estoy desarrollando un equipo que transmite data via Modem Externo por la linea telefonica y todo funciona bien.... bueno casi todo...
En realidad no se por que no logro recibir bien la data que responde el modem cuando trato de leer sus respuestas.. ejemplo
AT enviado via serial
Respuesta del Modem. OK
Sucede que si hago el discado via comandos AT usando ATDT y el Numero a discar, el modem hace perfectamente la llamada, ell modem remoto responde se establece la comunicacion se pueden enviar y recibir datos perfectamente y sin errores todo perfecto sin problemas pero......
Si intento almacenar o leer las respuestas del modem NO las puedo leer sino unicamente el primer caracter.
Ejemplo Envio AT con el PIC y quiero leer la respuesta OK del MOdem pues solo recibo bien la "O" los demas caracteres no son recibidos o tambien la palabra CONNECT que envia el codem al conectarse pues solo recibo bien el "C" los demas caracteres no solo se reciben garabatos o Hex etraños..

yo uso Pic basic. y el pic 16F877A a 20 Mhz
el codigo es mas o menos asi.

prueba:
Low led
Pause 2000
SerOut2 txmodem,84,["AT",13] ' 7971773ata de discado
lee:
SerIn2 rxmodem,84,400,fueratiempo,[wait("OK"),STR linea1\16\13]
High led
Pause 2000
SerOut2 tx1,84,["la respuesta es...", STR respmodem]

fueratiempo:

Pause 2000

GoTo prueba

Ese es el codigo que deberia funcionar creo yo ya no se como escribirlo si espero recibir el OK pues nunca se recibe lo que se imprime en el ARRAY es solo el caracter "O" si en el lugar de capturar el OK solo le digo que capture la "O" perfectamente es capturada y el programa continua, pero si le digo que capture OK o la palabra CONNECT pues se queda en el WAIT ya que no recibe bien los caracteres ojo como mencione anteriormente si los dos modem se conectan y desde hyperterminal desde el modem remoto escribo yo la palabra OK o CONNECT esas si son leidas perfectamente pero no si las envia el MODEM como respuesta..

Alguien podria decirme Porque?
Saludos..
 
Uhmmm. se me ocurre que ensayes primero la comunicacion empleando el Hyperterminal de Windows para tener certeza de cómo operan los comandos. Si pudieras transcribir una sesion de dialogo con la Hyperterminal y el modem.
Saludos
 
hola tecnogirl bueno dejame comentarte que ya eso lo hice... y todo funciona bien..
fijate en algo..
simplemente el pic envia AT al modem externo y este debe responder OK.
de ese OK solo recibo la O la k no se recibe en ningun momento.

si en su lugar yo establesco la conex desde otra maquina y por el Hyperterminal envio el OK perfecto el pic lo recibe eso quiere decir que la comunic esta bien pero por que no lo que envia directamente el modem... esa es la pregunta... ya le cambie al modem externo que la config fuera XON/XOFF y nada sigue igual el problema.

si se te ocurre que revise algo me avisas y gracias por la recomendacion estoy atento
 
Una consulta... como hago para recibir varios bytes con el comando serin? por mas que le doy vueltas me tira algunos errores... desde ya muchas gracias ;)
 
copiate el codigo que puse yo ok ese funciona de todas maneras abre un hilo con tu consulta sino se hace una ensalada con el hilo mio estare pendiente para seguirlo el tuyo ok
saludos
 
Última edición:
que yo sepa no se puede recibir mas que un byte en el PIC, hacia afuera se pueden enviar los que sean, pero para recibir, solo de a 1, bueno es lo que yo se :B
 
hola compañero me gustaria saber un poco más sobre tu proyecto, es muy interezante pero no logro todavia ver ni el hardware y software completo para poder aportar soluciones.
 
saludos....
no hay mucho que decir simplemente estoy comunicando el pic via modem externo por una linea telefonica para enviar y recibir datos lo cual ya lo estoy haciendo el unico problema es que el pic no almacena bien las respuestas locales que envia el modem que esta conectado al pic. ejemplo cuando se disca a un numero externo y este esta ocupado el modem responde en su salida serial BUSY pyes de esa palabra solo logro capturar la B solamente lo demas se registra como cualquier cosa la USY no logro que se apture bien y no se por que ya lo e intentado todo y nada...

saludos
 
psicopic:
Has una sencilla prueba: cuadruplica la linea de codigo siguiente para que te quede asi:

SerIn2 rxmodem,84,400,fueratiempo,[wait("OK"),STR linea1\16\13]
...
SerIn2 rxmodem,84,400,fueratiempo,[wait("OK"),STR linea1\16\13]

Ejecutar de nuevo el programa llamando a un numero telefonico que te responda con BUSY.
Con la modificacion sugerida, esta vez si debe aparecer la palabra BUSY completa. Prueba y comentanos.
Saludos
 
Atrás
Arriba