Buenas tardes, estoy y desarrollando un proyecto en el que utilizo un pic 16f877A, un LCD 2x16 y un teclado matricial de 16 teclas.
El programa tiene en una seccion que trata de visualizar en el Lcd los nombres de 60 diferentes números de parte, por lo que utilicé un menu de selección con la instruccion switch y en cada case utilicé la instrucción printf(lcd_putc,"\texto") en donde texto varia dependiendo del case en ejecución. Pero el problema es que consume demasiada memoria Rom. Y como en el futuro se agragarán 10 nuevos números de parte calculo que la memoria ram andará rondando el 100%, y ya no compilaria.
He leido que la instrucción Printf consume mucha Rom.
Por lo que traté de ahorrar la memoria Rom y tratando de usar lo menos posible la instrucción Printf utilizo una variable universal llamada "Texto" y en la sección del Switch en cada Case uso la instrucción Strcpy para transferirle los diferentes valores de los strings con los nombres de los 60 diferentes modelos. Y despues salir de la instrucción Switch y utilizar la instrucción printf(lcd_putc,"Texto: %s", texto) una sola vez para mostrar cada uno de los 60 diferentes mensajes. Esto si trabaja con la ventaja de escribir una sola vez la instrucción Prinf pero como en cada case utilizo la instrucción strcpy pues consume demasiada memoria Rom, lo cual lo hace redundante.
Por lo que tengo la idea de buscar la solución, en la cual crear en la sección de declaracion de variables del programa una variable universal llamada texto(i), y varias variables del tipo string con los datos (strings) de los 60 diferentes modelos y en la cual el valor de i varie de acuerdo al valor del case en ejecución (si se esta ejecutando el case 3 pues que el valor de texto(i) sea texto(3)) .
En otras palabras
Declarar la variable texto(i)
en la cual dependiendo del valor de i adopte los diferentes strings:
texto(i)=texto a desplegar(i)
declarar los strings:
texto(1)="modelo x23f"
texto(2)="modelo xmo45juf"
texto(3)="modelo helix276"
texto(4)="modelo x34f"
texto(5)="modelo temp"
En la cual se despliegue el dato del string que está entre comillas en el Lcd en cada valor de texto(i) en funcion del valor de i.
y solo utilizar una sola vez la instrucción printf para que muetre el valor de texto(i) con el uso de la instrucción printf(lcd_putc,"Texto(i): %s", texto(i))
No sé si con algun tipo de matriz o algún otro arreglo sea posible hacer algo así.
No sé como declarar las variables para tratr de hacerlo
Si alguien tiene una idea de como hacerlo por favor hagan un comentario o algun ejemplo