Buenos dias estoy desarrollando un proyecto en donde utilizo un 16f877A, un teclado matricial de16 botones, y un LCD de 2x16. En el proyecto se contempla que el usuario seleccione de un menu general 60 diferentes numeros de parte por lo que intento utilizar la instruccion Switch en el que en cada Case me muestre el numero de parte correspondiente en el LCD , para el que utlizo la instruccion printf(lcd_putc,"\texto") en cada CASE, el problema es que me consumen demasiada memoria ROM, y aun me falta agregar en el futuro 10 nuevos numeros de parte por lo que calculo que consumiria la ROM al 100% y ya no me funcionaria. He leido que las instrucciones Pritf consumen mucha memoria ROM y como yo la utilizo en cada case pues ya se imaginaran.
He tratado de crear una variable universal texto la cual tomaria el valor de text1, texto2, texto3, etc, dependiendo del case en ejecución con la instrucción strcpy(texto, "texto1") ó strcpy(texto, "texto2") ó strcpy(texto, "texto3"), etc. ,dependiendo del case y luego salir de la instrucción Switch y con una sola instruccion printf(lcd_putc,"Texto: %u", Texto) mandar a poner en el LCD el valor de texto (tratando de economizar memoria ROM); pero el asunto es que como en cada case pongo la instruccion strcpy tambien consume buena cantidad de ROM, sale redundante esta solución.
Por lo que he tratado de atacar el problema del ahorro de la memoria Rom y tengo la idea de que en el programa declarar las variables texto(i)=texto deseado(i): texto(1)=texto deseado(1),texto2=texto deseado2, texto(3)=texto deseado3, etc de tal forma que el valor de i varie dependiendo del case en ejecución.
Por si esta explicación no se entiende lo pongo de otra manera :quiero declarar en la seccion de variables del programa :
una variable universal
texto(i)=texto deseado(i)
que adopte los diferentes valores, dependiendo del valor de i:
texto deseado(1)="modelo 1xc"
texto deseado(2)="mod. housing 2xc'
texto deseado(3)="modelo atr27"
texto deseado(4)="modelo avw3s"
No sé si con algun tipo de matriz u otro arreglo sea posible que dependiendo del valor de i sea el string a visualizar en el LCD.
No sé como tendria que declarar los tipos de variable, ya que lo que yo quiero que me muestre en el LCD serian los diferentes strings.
Por favor si alguien me puede ayudar, con alguna idea, o algun ejemplo de como hacerlo.