Autor Tema: Consultas Programacion Codigo C, Matriz de caracteres  (Leído 2347 veces)

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

Desconectado luc_eluani88

  • PIC10
  • *
  • Mensajes: 32
Consultas Programacion Codigo C, Matriz de caracteres
« en: 22 de Noviembre de 2012, 23:50:43 »
Hola. Quería consultar lo siguiente, necesito tener precargado en memoria una matriz con números, dado que voy a hacer una aplicación para modulo gsm con pic 18F14K50. Necesito generar una lista blanca y comparar estos valores con los que reciba como dato del modulo. En la recepción por ahora no estoy trabajando, cuando intente cargarlo en el modulo del programa, me daba un error el pic c compiler de que la Ram no alcanza para guardar todas las variables. Entonces imagino que debo cargar la lista en la memoria flash, y no en la ram, por ende afuera del la rutina principal. Deseaba saber si alguno podía aconsejarme en como resolverlo. El pic tiene 16K de memoria flash, por ende sobra para la aplicación. En mis limitados conocimientos del c se que tengo que definir la matriz de forma global, había pensado en esta forma:

Código: C
  1. #define char lista[178][10]
y para cargarlo asi:

Código: C
  1. #define char lista[177][10]={{'x','x','x','x','x','x','x','x','x','x'}}

y cargarlos de esa manera numero por numero, pero si alguien sabe como hacerlo de forma mas prolija, agradezco mucho cualquier aporte. Cuando lo definí así y compile en pic c compiler no vario mucho la cantidad de memoria que consumio. Es raro porque a 8bit por char, y siendo una matriz de 178*10= 1780 bit o 1,7kb, pero el compilador me dio el mismo numero para Rom y Ram.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Consultas Programacion Codigo C, Matriz de caracteres
« Respuesta #1 en: 22 de Noviembre de 2012, 23:54:29 »
Hola, proba con

Código: C
  1. const char lista[177][10]={{'x','x','x','x','x','x','x','x','x','x'}}

Saludos.
"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 luc_eluani88

  • PIC10
  • *
  • Mensajes: 32
Re: Consultas Programacion Codigo C, Matriz de caracteres
« Respuesta #2 en: 23 de Noviembre de 2012, 08:27:22 »
No hay una forma mas facil de hacerlo??

Desconectado luc_eluani88

  • PIC10
  • *
  • Mensajes: 32
Re: Consultas Programacion Codigo C, Matriz de caracteres
« Respuesta #3 en: 23 de Noviembre de 2012, 08:33:44 »
Lo probe y me la toma como variable y le tuve que agregar el ;

Código: C
  1. const char lista[177][10]={{'x','x','x','x','x','x','x','x','x','x'}};

Va a ser engorroso cargar el codigo pero imagino funcionara, pero la cantidad de memoria utilizada sigue siendo 4-5% que es poco para la cantidad de datos que genero.

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Re: Consultas Programacion Codigo C, Matriz de caracteres
« Respuesta #4 en: 23 de Noviembre de 2012, 10:34:13 »
Si tienes una lista de números de teléfono, haz un programilla en el pc para que te genere el código de la variable.
Si son 177 números va a ser más rápido y más fiable que hacerlo a mano.

Saludos.

万人の友は誰の友でもない。

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Consultas Programacion Codigo C, Matriz de caracteres
« Respuesta #5 en: 23 de Noviembre de 2012, 12:42:32 »
Si aún agregando el array el compilador no varía tu ram/rom, es porque a veces los compliladores ,especialmente los de uC, optimizan y si detectan que si bien has definido el array no lo has usado en ninguna parte del código, pues sencillamente no lo incluyen en el compilado. Lo mísmo sucede con las subrutinas o librerías enteras.

Como bien ha dicho ma4826, vas a tener que escribir código fuente que genere código fuente :D

En la web seguramente haya alguno que te sirva.

Saludos.
"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.


 

anything