Autor Tema: AT de longitudes variables en asm  (Leído 3807 veces)

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

Desconectado ariel25

  • PIC10
  • *
  • Mensajes: 42
AT de longitudes variables en asm
« en: 23 de Febrero de 2007, 21:13:38 »
Hola amigos como estan?. Se me presento un pequeño problema ya que estoy trabajando con los comandos AT y con el telefono sony ericsson t306, es que a la hora de llamar por el  telefono se debe utilizar el siguiente comando:
ATDT+numerotelefonico;, el problema es que como hago para marcar los numeros desde un telefono comun ya que estos no son siempre la misma cantidad. Con la computadora y el cable es sencillo pero con un pic se complica un poco.Estoy programando es ASM y el pic con que trabajo es el 16F877A.
Desde ya agradecido por todas las sugerencias y opiniones.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: AT de longitudes variables en asm
« Respuesta #1 en: 26 de Febrero de 2007, 19:31:21 »

No entiendo la pregunta, ¿si el número cambia porque no lo pones en una variable?
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: AT de longitudes variables en asm
« Respuesta #2 en: 26 de Febrero de 2007, 19:55:07 »
Se debe referir a comandos de longitud variable, es decir a la cantidad de bytes enviados...
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: AT de longitudes variables en asm
« Respuesta #3 en: 27 de Febrero de 2007, 14:39:56 »
Se debe referir a comandos de longitud variable, es decir a la cantidad de bytes enviados...

Si, eso lo comprendí pero no me queda claro si el número es fijo una vez y listo o si cambiará todo el tiempo de la ejecución del programa , o si quiere una rutina para un software y que lo pueda mover a otros software, etc.

Cada una de las alternativas lleva a pequeñas diferentes soluciones.  Lo más fácil es hacer que guarde los datos en un buffer de largo máximo conocido (no creo que necesite más de 13 dígitos) y que los guarde en ASCII.  El 4 seria un '4' = 52dec , y así sucesivamente.  El fin lo puede hacer con un 0 en binario , es decir 0dec.  Al detectar el 0 se termina de enviar el comando.

De todas formas, falta algo mas de información para completar el acertijo  :)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ariel25

  • PIC10
  • *
  • Mensajes: 42
Re: AT de longitudes variables en asm
« Respuesta #4 en: 27 de Febrero de 2007, 17:40:31 »
Muchisimas gracias por responder. Disculpen si no fui muy claro, tratare de explicarlo lo mas coherente posible. Ahora estoy trabajando con at para sony ericsson pero mi duda es la siguiente para marcar un numero telefonico es ATDT+NUMEROTELEFONICO; lo que pasa es que en Paraguay los celulares tienen 10 digitos las lineas comunes 6 digitos generalmente, pero para llamadas internacionales a veces alcanzan hasta 20 digitos mi duda es como programar un 16F877 el cual recibe los numero atraves de un MT88L70 el cual a su ves esta conectada a un telefono de linea baja ya que la "variable" NUMEROTELEFONICO  puede variar el numero de digitos y como hago para saber que se ha introducido el ultimo numero y que es este el numero que se desea marcar y pasarlo a la linea de comando AT para poder transmitirlo serialmente al telefono. Redondeando  basicamente son dos las dudas que tengo como saber cual es la logitud del numero marcado y como añadir este mismo numero a la linea de comando AT
Desde ya muy agradecido por la sujerencias dadas

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1295
Re: AT de longitudes variables en asm
« Respuesta #5 en: 27 de Febrero de 2007, 19:24:31 »
Que tal Ariel25,

Creo que lo que tienes que hacer es identificar el tipo de llamada que se va a realizar, por lo que yo encuentro 3 tipos:

1.- Llamada local
2.- Llamada a celular
3.- Lamada larga distancia

En Mexico por ejemplo todos los numero telefonicos de llamada local deben ser de 7(para toda la Mexico, excepto Guadalajara, Monterrey y Mexico DF) u 8 digitos (solo para Guadalajara, Monterrey y Mexico DF). Para llamada de larga distancia nacional se hacen de 10 digitos de la siguiente manera: Codigo para indicar larga distancia nacional (01)+codigo de area (2 o 3 digitos) + numero telefonico. Para este caso como puedes ver la clave esta en identificar el tipo de llamada que en este caso es de tipo larga distancia nacional, el cual es iniciado por un 01, entonces como puedes ver el marcaje total es de 12 digitos y no importa si el numero telefonico es de 7 u 8 digitos.

De igual manera sucede para la larga distancia internacional, la cual comienza con 001+codigo del pais+codigo de area+numero telefonico.

Existe un standard internacional que dice que todo numero telefonico en "cualqueir parte" del mundo debe ser de 10 digitos el cual aplica perfectamente para USA y Mexico.

Esto porque el numero telefonico (como local) consta de 7 u 8 digitos + 3 o 2 digitos del codigo de area, dando un total de 10 digitos.

Esto es por ejemplo: En la ciudad de Mexico todos los numeros telefonicos son de 8 digitos y el codigo de area correspondiente a la ciudad de Mexico es el 55 asi por ejemplo si una persona tiene el numero telefonico: 1234-5678, realmente su numero telefonico es el 55-1234-5678, pero si otro persona que vive en la ciudad de Mexico lequiere llamar, unicamente marca 8 digitos. Pero alguien que vive en otro estado tiene que marcar 01-55-1234-5678, Asi puedes ver que realmente el nuemro telefonico es de 10 digitos, pero ahora tuviste que marcar 12 digitos y no doce, y lo que me dice cuantos digitos tengo que marcar es cuando deteceto el 01.

Para las llamadas a celular es lo mismo, solo que estas comienzan con 044+numero telefonico.

Bueno esta es una idea ejemplificada para Mexico, lo que se me hace extranio es que comentas que se puede hacer una marcacion de hasta 20 digitos y no cumpliria con el standar internacion de marcacion telefonica.

Lo que cambia en cada pais es el acceso al serivcio de larga distancia nacional e internacional, pero segun el statndar debe ser siempre asi:

               marcacion al acceso de larga distancia internacional(diferente para cada pais, en Mexico es 001, en USA es 011)+codigo de pais (a Mexico le corresponde el 52)+ codigo de area+ numero telefonico

Espero esto te de una idea para tu proyecto.

Saludos.

Elreypic.

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Re: AT de longitudes variables en asm
« Respuesta #6 en: 27 de Febrero de 2007, 22:23:18 »
Hola
La solución de Maunix me parece la más acertada!! es lo que se usa comunmente en muchos dispositivos de este tipo.- me refiero a poner un número que indique que es el último digito

saludos
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: AT de longitudes variables en asm
« Respuesta #7 en: 27 de Febrero de 2007, 23:18:10 »
Hola
La solución de Maunix me parece la más acertada!! es lo que se usa comunmente en muchos dispositivos de este tipo.- me refiero a poner un número que indique que es el último digito


Es que creo que es lo más simple.  Se guarda el string a marcar con un caracter #0 para finalizar y listo, nada de seteos raros.

Es versátil y potente.

Saludos

PD: a veces no hay que reinventar la pólvora.  Esto del caracter null como final de cadena es lo que utilizan casi todos los compiladores que conozco para indicar el fin de un string.
« Última modificación: 01 de Marzo de 2007, 10:30:20 por maunix »
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)