TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: esteban_pic en 16 de Diciembre de 2012, 01:10:07

Título: problemas en string c18 para modulo sim900d, comandos AT
Publicado por: esteban_pic en 16 de Diciembre de 2012, 01:10:07
Hola a todos!!! tengo el siguiente problema, tengo un pic 18f14k50 conectado a un modulo gsm sim900d, via comandos AT logro que el modulo gsm llame y que envie mensajes de texto "sms", mi problema es que tengo conectado al ADC un sensor de temperatura, y yo quiero que envie el siguiente mensaje de texto, por ejemplo:

             La temperatura actual es= 32 grados


yo logro enviar via sms la frace  "La temperatura actual es=" pero no logro adosarle el valor tomado por el ADC.

intente por ejemplo hacerlo via una cadena de caracteres:

char texto[20];


texto[1]='l';

texto[2]='a';

texto[3]=' ';

texto[4]='t';

.....

texto[15]=valor_adc[1];
texto[16]=valor_adc[2];
texto[17]=valor_adc[3];

luego mando el string para el sms


putrsusart((const far rom char *) "AT+CMGS=\"NUM TELEFONO\"\r");


putrsusart((const far rom char *) texto)  o   putrsusart((const far rom char *) texto)


luego el caracter final.


pero no logro recibir el sms, a lo sumo envía una letra "f"

espero que alguien pueda ayudarme, ya me gaste bastante crédito probando!!!! jaja!!!

                                                       saludos esteban!!!   :-/   :-/    :-/    :-/

Título: Re: problemas en string c18 para modulo sim900d, comandos AT
Publicado por: willynovi en 16 de Diciembre de 2012, 09:08:36
Respondo un poco desde lo general y para darte una idea para que pruebes, nunca he trabajado con cadenas de caracteres ni similar.

En la variable valor_adc que tienes guardado?
Si trabajas con el 18f14k50 no son solo 2 bytes?
Quizas en el momento de asignar estos valores a texto tienes que convertirlos antes.

Es decir,
si tienes el valor 32 en el ADC, supongo que es de 10 bits, entonces
valor_adc[1] = 0
valor_adc[2] = 32

NOTA: pongo 32 por decir algo, porque no conozco la aplicación, no haciendo referencia al valor que debes mostrar ni el valor de temperatura.

lo que debes hacer es convertir a string ese valor
itoa(valor_adc[2], String)

luego a continuacion de tu texto "La temperatura actual es=" usas
putsUSART(String);
Título: Re: problemas en string c18 para modulo sim900d, comandos AT
Publicado por: Suky en 16 de Diciembre de 2012, 14:13:36
Porque pones (const far rom char *) texto si texto en un arreglo en RAM? Solo usa putsusart(texto) y debería de funcionar.

Ahora si quieres hacer que se envie: La temperatura actual es= 32 grados, la forma más simple de hacerlo es:


Código: C
  1. char texto[30];
  2. int Temperatura;
  3. sprintf(texto,"La temperatura actual es= %u grados", Temperatura);
  4. putsusart(texto)


Saludos!
Título: Re: problemas en string c18 para modulo sim900d, comandos AT
Publicado por: esteban_pic en 17 de Diciembre de 2012, 16:24:34
Gracias a ambos!!!! logre realizar el envio de datos, antes de ver sus respuestas, pero sus contestaciones me hicieron pensar y medieron nuevas ideas.

                                                                              gracias!!!!!    :-/  :-/  :-/  :-/