TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: anpepla en 28 de Mayo de 2004, 08:22:00
-
Buenas
Estoy enviando una trama desde el pic al móvil, para mandar un mensaje, lo hago con comandos AT, pero este tipo de comando tiene que terminar con la secuencia: ctrl+Z, ¿alguien sabe que código ascii es este, o como mandarlo?
Muchas gracias
-
El ascii del ctrl+z es el 26
-
Muchas gracias por contestar, acabo de coger de inet una tabla ascii y efectivamente es el 26. En mi anterior tabla el 26 me venía como epsilon.
Estoy intentado acceder a tu ftp para descargar el manual de picbasic pro, pero no hay forma. ¿Lo has desconectado ya?
Un saludo
-
Pues tienes razón, parece que me he quedado sin sockets...

Lo reinicio y en 2 minutos está cargado de nuevo...
-
Me sigue sin funcionar
Me gustaría que el programa hiciese lo mismo que hace el siguiente en C:
printf("0791423144112312327"
;
printf("F70000304031121235FC8373B0C9ABFF123539DC68300"
;
putc("x1A");
Las dos primeras lineas las consigo mandar, pero la última:"putc("x1A");", que equivale a ctrl+Z, no se como pasarla a Picbasic
Muchas gracias
-
Como ya te comenté en el correo privado que me mendaste,
sería
serout2,pin,baud,[26]
poco mas...
Pero ahora tengo la duda, de si realmente necesitas el ctrl+z, o a parte nedesitas un retorno de carro después...
comanta un poco mas ampliamente la filosofía de tu proyecto para disfrute de todos, y para hacernos una idea de lo que realmente tiene que hacer el programa.
-
El proyecto básicamente consiste en un sistema de alarma que al cerrar un contacto el pic manda un mensaje a un teléfono móvil.
Hasta ahora he conseguido todo lo que quería que hiciese:
- Testear el estado del móvil :SerOut2 pin_manda,32,["AT+CPAS",13,10]
- Hacer una llamada:SerOut2 pin_manda,32,["ATD609....",13,10]
etc.
Incluso la formación de tramas PDU, no son dificiles de hacer pero el problema radica en el proceso de envio de un mensaje.
Según los comandos AT, sería así:
AT+CMGS=<length><CR>PDU is given <ctrl-Z>,
osea
SerOut2 pin_manda,32,["AT+CMGS=41",13,]
pause 100
SerOut2 pin_manda,32,["0791423144112312327F70000304031121235FC8373B0C9ABFF123539DC68300",26]
pero no funciona.
Este sistema lo he obtenido de una rutina que encontré en C:
printf("at+cmgw=41"
;
delay_ms(300);//espera a que el móvil responda
printf("0791423144112312327"
;
printf("F70000304031121235FC8373B0C9ABFF123539DC68300"
;
putc("x1A");
entiendo que la última linea:putc("x1A");es ctrl+Z según ascii pero en picbasic no hay nada.
Muchas gracias por el interés
-
Escrito originalmente por anpepla
El proyecto básicamente consiste en un SerOut2 pin_manda,32,["AT+CMGS=41",13,]
te sobra la coma del final...
SerOut2 pin_manda,32,["AT+CMGS=41",13]
pause 10
SerOut2 pin_manda,32,["07914231441...........",26]
Has intentado conectar directamente el teléfono al pc???
y has intentado mandar la trama desde el hiperterminal a mano???
en principio el comando at+cmgs, es un comando at de modem gsm... Estás trabajando con un modem??? o con un TLF???
-
Gracias por el interés.
Desde el hyperterminal si que funciona ya lo intenté.
Pero es bastante sencillo pulsar el ctrl+z.
Analizando el programa que puse en C, debe de haber alguna diferencia entre pritc y putc, que desconozco pues sino no hubiesen diferenciado una linea de otra.
Otra posibilidad es la de compilar la linea putc.... e introducirlo en asm en el picbasic.
Un saludo desde el sur de Madrid