Hola. Estoy intentando programas unas rutinillas para que en una línea de un lcd del tipo hd 44780 (concretamente el lm041L) me aparezca un mensaje. Si hago:
....
printf(lcd_putc,%s,"hola"
; --> funciona bien, en la LCD aparece un hola como un castillo.
tambien, si pongo:
.....
const char cadena[5] = "hola";
......
printf(lcd_putc,%s,cadena); --> tambien se lo come, sale "hola".
pero si pongo:
char cadena[];
......
strcpy(cadena,"hola"
;
printf(lcd_putc,%s,cadena); --> NO FUNCIONA
es decir, en el display no aparece nada.
Es como si la función strcpy no hiciera nada, me tiene frito; tampoco me funciona strcat y me temo que ninguna de manejo de cadenas. Lo estoy haciendo con el PCW que hasta ahora me habia ido muy bien. Todo esto lo tengo implementado en el simulador ISIS, porque empecé montandolo físicamente pero la verdad es que asi es mucho más cómodo.
No se si es que hay que manejar las cadenas de otra manera, no creo porque strcpy, usándola de la misma manera, me funciona bien en un compilador tipo turboC de toda la vida.
Hasta he probado hasta utilizar la directiva:
....
#locate cadena=0x50
.....
strcpy(cadena,"hola"
y luego vel la memoria del micro con el ISIS, a ver si en la dirección 50 está la cadenita de marras, y aparentemente no está.
Creo que se puede configurar el ISIS para ver como están las variables que se declaran en el fichero fuente del PCW, pero de momento no se como hacerlo; me han comentado que hay compiladores de C que dan más funcionalidad en esto de la emulación, pero hay muy poca información en castellano.
Por favor si alguien ha tenido algún problema parecido y me puede dar elguna pista o programa de ejemplo se lo agradecería enormemente. Mi dirección de correo electrónico es
mario_re@teleline.essalu2 y gracias.