Hola.Perdonad el offtopic... MLO,sabes de todo jejeje
AT-PDU? AT-TEXTO? FBus? ....
Saludos
Hola.
AT-PDU? AT-TEXTO? FBus? ....
Saludos
Hola.
El string RING es para identificar la llamada entrante, para el SMS entrante debes usar otro comando.
Usa mejor la interrupción serial para recibir los strings, yo nunca he usado la función gets(), si no la función getc() y recibo byte a byte y lo almaceno en un buffer (lento pero seguro :lol: )
Saludos
Hola MLO
Gracias por tu respuesta.
Si, lo que hago con RING es solo para probar la recepcion en el pic antes de empezar a trabajar con los sms, quiero que cuando reciba esta palabra se prenda un led y asi comprobar que la recepcion esta perfecta, hecho esto podré empezar a trabajar con los comandos.
Te cuento que he probado recibir la cadena con getc() pero como que se me bloquea el pic. Si tu podrías con un ejemplo explicarme como hacer esto te agradeceria muchisimo ya que esto resulto un dolor de cabeza, no pense que iba a tener problemas con esto. Antes programaba en Basic y recientemente migre a este lenguaje porque es mucho mejor mas eficiente.
Saludos.
Hola.Hola MLO
Lo que te esta enviando el módem o el celular son los ASCII \r y \n, ellos también se van a guardar en el bufer. La idea sería cambiar la rutina de la interrupción para que solo guarde los bytes diferentes a \r y \n, se podría hacer con un if.
Saludos
Hola.
Pues, yo lo haría con un ifCódigo: C#
#int_RDA void Serial_isr(void) { c=0; if(kbhit()) { c=getc(); if(c!='\r' && c!='\n') buffer[i++] = c; } }
Saludos
Hola MLO.
Gracias por tu ayuda.
Voy a tomar en cuenta esta sugerencia ya que tengo problemas para filtrar la palabra.
Saludos.
Hola.
Para adaptar los voltajes yo uso un diodo Zener de 3.6v para el pin Tx del PIC y un 74HC125 para el Tx del celular y funca bien ;-)
Saludos
Hola.
El baud rate si esta configurado con el mismo valor en ambos dispositivos?
Saludos
Hola MLO
Si todo está correcto, el cel es autobauding, los niveles de voltaje del cel y el pic están perfectamente acoplados pero al momento de realizar la llamada el cel tx RING y el pic como que entra a realizar el proceso de la interrupción pero no sale de él, como que no recibiera jamás el 0x0D y ya me está desesperando este asunto porque en vase a esto tengo que realizar mi tesis y no consigo recibir bien el dato, la parte de transmision no tengo problema por eso te digo que la velocidad y los niveles de voltaje estan bien. En BASIC no tenía problema al realizar esto, creo voy a tener que volver a BASIC :-(
Hola.Gracias MLO
Yo trabajo a 12MHz ... prueba a ver como te va.
Saludos
Hola.Hola MLO
Si, es tal como lo envía el módem. Yo lo que hago es discriminar con if, tal como lo postee anteriormente.
Saludos
Hola.Hola MLO
Y si sabes que el envío comienza y termina con \r y \n, se puede gestionar el flag de aviso con el char \n no? al primer envío no va a procesar el comando porque el bufer de recepción rstá vacío, pero a la segunda llegada del char, el bufer esta lleno, por lo que se puede procesar el comando.
Saludos
Hola.Hola MLO
Pues :? me parece raro que no te funcione, normalmente uno asigna de esa manera las interrupciones:Código: CSS
#int_RDA void Serial(void) { ... } #int_EXT void Pulsos(void) { ... }
Puede ser un bug del compilador, CCS tiene sus cosas. Postea el código completo para ver que sucede.
Saludos
Hola.
Debes activar el flag de aviso para el SMS entrante, eso lo haces seteando el comando CNMI.
Saludos
Hola.Hola MLO
Envía así:
AT+CNMI=1
Habría que medir el voltaje a la salida del regulador ... si puedes, sube un esquemático para tener una mejor idea.
Saludos
Hola.HOLA MLO
Pues yo lo hago teniendo en cuenta el número de veces que llegan los bytes \r y \n, a la primera que llega, no se hace nada, porque el bufer esta vacío, a la segunda vez el bufer no tiene la información que necesito (a menos que quieras verificar el número telefónico) y a la tercera ya verifico el comando.
Saludos
Hola.No mismo sale :-(
Pues yo lo hago teniendo en cuenta el número de veces que llegan los bytes \r y \n, a la primera que llega, no se hace nada, porque el bufer esta vacío, a la segunda vez el bufer no tiene la información que necesito (a menos que quieras verificar el número telefónico) y a la tercera ya verifico el comando.
Saludos
Si MLOBueno ya poco a poco parece que esta saliendo...
Pero no tengo idea como hacerlo :-(
Si MLOBueno ya poco a poco parece que esta saliendo...
Pero no tengo idea como hacerlo :-(
Buenas tardes compañeritos.buen dia, me llamo omar. saludos a todos.
Estoy realizando un proyecto que consiste en counicar un pic con un nokia 3220 para por medio de sms controlar dispositivos. La comunicacion entre el pic y el celular lo he realizado sin problema puedo generar llamadas o enviar sms desde el pic por medio de este celular y con eso realizar varias aplicaciones. El problema que se me presenta es a la hora de tratar de leer un sms con el pic, estoy programando con ccs pcwhd por eso recurro a ustedes para ver si me pueden orientar con este asunto. Por ejemplo si yo mando un sms con la palabra "ENCENDER"quiero que el pic lea esta palabra y realice la acción del caso.
Saludos Cordiales.
at+cmgs=”NUMEROTELEFONO”Envio: at+cmgs="1234567890"
Espero: >
Envio: Hello World! + caracter de fin de mensaje+CMGR: "REC READ","1234567890",,"12/07/30,00:12:05+32"
Mensaje_aca creo
OK
AT+CMGL="ALL"
AT+CMGL="REC UNREAD"+CMGL: 1,"REC READ","+85291234567",,"07/02/18,00:05:10+32"
Reading text messages is easy.
+CMGL: 2,"REC READ","+85291234567",,"07/02/18,00:07:22+32"
A simple demo of SMS text messaging.
+CMGL: 3,"REC READ","+85291234567",,"07/02/18,00:12:05+32"
Hello, welcome to our SMS tutorial.
OK