Que tal gente, hace rato que vengo programando LCDs con PICs Microchip y compilador MikroC.
Y hace tambien desde entonces que tengo un problema de RAM al utilizarlos. Aunque no se si es un problema, o algo perfectamente normal y esperable.
Mi duda puntualmente es la siguiente:
Resulta que para mostrar textos en el LCD (utilizando tanto las librerias de MicroC o unas hechas por uno mismo) inebitablemente se tiene que escribir ese texto en algun lado... con variables tipo Char, o cadenas de Char (String)... pero sea como sea que lo camuflemos en el lenguaje de alto nivel (C), para el compilador, eso significa memoria RAM... mucha memoria RAM... Entonces e ahi el problema... si queres hacerte una interface en tu LCD con un menu rico y minimamente extenso, olvidate... no se puede... enseguida te quedas sin RAM...
Ejemplo con las librerias de MicroC:
Lcd_Out_Cp("¡ Bienvenido !"); <----- esto ocupa 15 Bytes de RAM.... 15 ! (un Byte por caracter) Cuando en un 16F628A solo tenemos 208 Bytes disponibles... Le salen las cuentas? Si, solo podriamos escribir menos de 14 lineas de texto distintas... Y, jaja, olvidate de crear variables de cualquier tipo para manejar tus datos... No hay espacio para ellas en el mundo de las librerias para LCDs... toda la RAM es para tu LCD... ¬¬ (Disculpen el tono ironico, es a causa de la frustracion... jaja)
La vengo piloteando de la manera que puedo... pero no me quedan lindas cosas... si quiero tener variedad de textos trato de guardar en una unica variable las palabras que mas se repiten y llamarlas como funcion... .pero eso me consume mas ROM... y asi estamos en un tire y afloje entre ROM y RAM... y ni hablar que el codigo queda hecho una chanchada... un asco...
Recurro al foro por que me ilumine (?) y dije, "no! no puede ser esto asi!" "seguro tiene que haber una forma mas eficiente y prolija de laburar con LCDs..." jaja...
Asi que por favor... acudo a la experiencia e informacion sobre el tema que tengan... por favor demuestrenme que soy un tonto y estoy manejandome muy mal.... que habia una forma mucho mejor de hacer esas cosas que no estoy viendo.
Gracias y saludos!
Y hace tambien desde entonces que tengo un problema de RAM al utilizarlos. Aunque no se si es un problema, o algo perfectamente normal y esperable.
Mi duda puntualmente es la siguiente:
Resulta que para mostrar textos en el LCD (utilizando tanto las librerias de MicroC o unas hechas por uno mismo) inebitablemente se tiene que escribir ese texto en algun lado... con variables tipo Char, o cadenas de Char (String)... pero sea como sea que lo camuflemos en el lenguaje de alto nivel (C), para el compilador, eso significa memoria RAM... mucha memoria RAM... Entonces e ahi el problema... si queres hacerte una interface en tu LCD con un menu rico y minimamente extenso, olvidate... no se puede... enseguida te quedas sin RAM...
Ejemplo con las librerias de MicroC:
Lcd_Out_Cp("¡ Bienvenido !"); <----- esto ocupa 15 Bytes de RAM.... 15 ! (un Byte por caracter) Cuando en un 16F628A solo tenemos 208 Bytes disponibles... Le salen las cuentas? Si, solo podriamos escribir menos de 14 lineas de texto distintas... Y, jaja, olvidate de crear variables de cualquier tipo para manejar tus datos... No hay espacio para ellas en el mundo de las librerias para LCDs... toda la RAM es para tu LCD... ¬¬ (Disculpen el tono ironico, es a causa de la frustracion... jaja)
La vengo piloteando de la manera que puedo... pero no me quedan lindas cosas... si quiero tener variedad de textos trato de guardar en una unica variable las palabras que mas se repiten y llamarlas como funcion... .pero eso me consume mas ROM... y asi estamos en un tire y afloje entre ROM y RAM... y ni hablar que el codigo queda hecho una chanchada... un asco...
Recurro al foro por que me ilumine (?) y dije, "no! no puede ser esto asi!" "seguro tiene que haber una forma mas eficiente y prolija de laburar con LCDs..." jaja...
Asi que por favor... acudo a la experiencia e informacion sobre el tema que tengan... por favor demuestrenme que soy un tonto y estoy manejandome muy mal.... que habia una forma mucho mejor de hacer esas cosas que no estoy viendo.
Gracias y saludos!