TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cereal2 en 05 de Abril de 2005, 10:57:00

Título: Memoria RAM ¿ocupa mucho mas en C que en ASM?
Publicado por: cereal2 en 05 de Abril de 2005, 10:57:00
Buenas, pues estoy programando un programilla para mostrar un mensaje al LCD en C con CCS.
Por lo tanto, de momento, tengo programado sólo las funciones para inicializar el LCD y para imprimir una cadena de carácteres.
Resulta que cuando compilo, me sale la siguiente linea:

      Memory usage:   ROM=7%      RAM=73% - 75%

Aquí me dice que el programa (ROM) ocupa 7% y las variables (RAM), entre 73% y 75%.

¿Tanto me ocupan las variables? o sea, todos los bancos del PIC están ocupados a 75% o solo es un banco y debo programar de tal manera que pueda usar otros bancos para tenar mas memoria?
A parte de unas variables como enteros  como contadores y tal, tengo otra que es una cadena de carácteres: char mensaje[80]
Pero si pongo más de 80 carácteres, ya me da error de que no hay más espacio. Mi intención es tener más espacio para la variable "mensaje", como si fuera un mensaje de movil (160) o más.

Si veis que necesitais mi código para poder comprobarlo, me lo pedís, sino, que solución tendría?

Muchas gracias por adelantado.
Título: RE: Memoria RAM ¿ocupa mucho mas en C que en ASM?
Publicado por: gfp en 05 de Abril de 2005, 17:35:00
Bueno, es preciso que la RAM esté algo cercana a su limite, pues, la difinicion de 81 caracteres te está llegando al limite de capacidad.
Al igual que tu no se si esto se refiera a toda la RAM, es decir la ram definida en todos los bancos. A ver si alguien nos saca de la duda... y de no ser asi entonces como declaro registros en la RAM de otros bancos.


gfp Sonrisa
Título: RE: Memoria RAM ¿ocupa mucho mas en C que en ASM?
Publicado por: J1M en 05 de Abril de 2005, 17:52:00
prueba guardando la cadena en la ROM ... para eso pon "static" delante de la declaración de la variable.

Saludos! Giño
Título: RE: Memoria RAM ¿ocupa mucho mas en C que en ASM?
Publicado por: tornar en 06 de Abril de 2005, 04:01:00
Codigo:
¿Tanto me ocupan las variables? o sea, todos los bancos del PIC están ocupados a 75% o solo es un banco y debo programar de tal manera que pueda usar otros bancos para tenar mas memoria?


Cuando el compilador CCS, te dice que tienes ocupado el 75% de la RAM, siempre se refiere al total ocupado, teniendo en cuenta toda la memoria RAM de todos los bancos que tenga el PIC.
Título: RE: Memoria RAM ¿ocupa mucho mas en C que en ASM?
Publicado por: cereal2 en 06 de Abril de 2005, 06:16:00
Gracias gfp, J1M y Torner.

Tendré en cuenta para usar la ROM utilizando "static" delante de la variable.

Si veo que necesito mas memoria....recurro a una memoria externa EEPROM? Si fuera el caso, tendré que mirar por este foro sobre la EEPROM. Si alguien tiene una ligera idea de cómo usarlo en lenguaje C, se lo agradeceria mucho. Y sobre su instalación electrónica.

Gracias!!!  Rebotado
Título: RE: Memoria RAM ¿ocupa mucho mas en C que en ASM?
Publicado por: J1M en 06 de Abril de 2005, 07:24:00
antes que poner una eeprom yo daría el salto a por un pic superior, en cualquier caso dentro del CCS tienes una librería para el uso de una eeprom externa (i2c), su conexionado puedes verlo en este diagrama:



saludos! Giño