TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Rikr09 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:
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 :-/ :-/ :-/
-
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:
strcpypgm2ram(textoprueba,"hola mundoo");
for(i=0; i<=strlen(textoprueba); i++){
imprimirCaracterU1(textoprueba[i]);
}
Y ya con esto funciona. :) Sin Warnings de ningun tipo. ((:-)) ((:-)) ((:-))