Autor Tema: problemas con el pcw  (Leído 1931 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ar_mario

  • PIC10
  • *
  • Mensajes: 4
problemas con el pcw
« en: 15 de Julio de 2004, 13:37:00 »
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.es


salu2 y gracias.













Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: problemas con el pcw
« Respuesta #1 en: 15 de Julio de 2004, 18:55:00 »
Yo tuve un problema parecido y lo solucióné definiendo la dimensión del array de destino,es decir,darle un tamaño concreto:
char cadena[10]; // por ejemplo
Sé que otros compiladores de C y C++ te permiten definir arrays sin dimensión (char cadena[]),pero parece que a CCS eso no le va bien,ó al menos no usando esta metodología.
Un saludo

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: problemas con el pcw
« Respuesta #2 en: 15 de Julio de 2004, 19:42:00 »
Definitivamente,si se puede hacer,pero de forma dinámica,o sea con punteros:
Codigo:

void main()
   {
   char *cadena[];
   lcd_init();
   strcpy(cadena,"¡Hola foro!");
   printf(lcd_putc,"%s",cadena);
   }


Como ves,sólo tienes que poner un asterisco delante del nombre de tu array cuando lo declaras y ya está.
Saludos