Autor Tema: Problema C18 String en Buffer [SOLUCIONADO]  (Leído 1598 veces)

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

Desconectado Rikr09

  • PIC16
  • ***
  • Mensajes: 112
Problema C18 String en Buffer [SOLUCIONADO]
« en: 13 de Mayo de 2014, 00:24:52 »
Saludos amigos de TodoPIC,

Resulta ue estoy trabajando con e compilador C18 y tengo un problema que quiero tener un Buffer donde pueda guardar varios String a lo largo de mi programa, pero al inntentar hacerlo tan solo con uno... No se carga ningun valor en el:

Código: [Seleccionar]
char textoprueba[20];

strcpy(textoprueba,"hola mundoo\0");

      for(i=0; i<=strlen(textoprueba); i++){
          imprimirCaracterU1(textoprueba[i]);
      }


void imprimirCaracterU1(char caracter){
    putc1USART(caracter);
    while(Busy1USART());
}



Como les mencionaba no imprime nada :( .... Hago la misma prueba pero cargando char NIT[] = "Holaaa mundo. "; y ahi si me sirve... Si imprime como he de esperar...

Espero contar una vez mas con su gran ayuda... Graciasssss  :-/ :-/ :-/
« Última modificación: 17 de Mayo de 2014, 11:13:06 por Rikr09 »

Desconectado Rikr09

  • PIC16
  • ***
  • Mensajes: 112
Re: Problema C18 String en Buffer [Solucion]
« Respuesta #1 en: 17 de Mayo de 2014, 11:12:40 »
Bueno amigos,

Ya resolvi mi problema luego de investigar y leer y leer... ... La funcion strcopy espera que ambos argumentos se encuentre en RAM pero "hola mundo" se crea en la memoria ROM; de ahi que existan funciones tales como strcpypgm2ram que copian el contendio de la ROM en RAM para poider usarlos como deseamos...

De este modo implemente el codigo de esta forma:

Código: [Seleccionar]
strcpypgm2ram(textoprueba,"hola mundoo");

for(i=0; i<=strlen(textoprueba); i++){
          imprimirCaracterU1(textoprueba[i]);
}


Y ya con esto funciona. :) Sin Warnings de ningun tipo.   ((:-)) ((:-)) ((:-))