TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jeremylf en 20 de Junio de 2007, 17:54:54
-
Hola a todos. El problema q tengo esq al intentar guardar o leer datos en la memoria de pograma me lee o guarda (porq nose q esta pasando) datos diferentes a los q quiero guardar.
Este es el codigo q llevo echo, espero puedan darle una ojeada y decirme q hago mal :?
#include <18f2550.h>
#fuses HS,NOPROTECT,NOWDT,PUT
#use delay(clock=12000000)
#include <lcd_f2550.c>
void main()
{
int dato = 1 ;
char string[64];
lcd_init();
lcd_putc("\fJEREMY");
delay_ms(1000);
write_program_memory(0x03D2,dato,1); //dirreccion, direcion donde se ncuentra l dato a guardar, cuantos bytes a partir de la direccion Dataptr vas a copiar.
read_program_memory(0x03D2,string,1);
for(;;)
{
printf(lcd_putc,"\f%u",string);
delay_ms(50);
}
}
Como ven uso un PIC18F2550 con un cristal de 12MHZ y no creo q este pic no soporte esas funciones; bien lo q quiero q haga esq guarda en la direcion 03D2 de la memoria de programa del PIC la variable dato, ocea 1, y luego supuestamente con read_... almacenarlo en "string" para luego verlo en el LCD quien me muestra el numero: 7. ¬¬!
Q estare haciendo mal? hay algo mejor q pueda hacer? :?
PD: Nose ingles ^-^'
Gracias, salu2 8) 8) 8)
-
¿Y cómo funciona esa función?
¿Sabías que en los 18F debes primero borrar la memoria y que la misma se programa, dependiendo del pic, pero en general en bloque de 64 bytes?
Saludos
-
Hola jeremylf
¿has visto el .hex final?
si todo va bien, deberias tener los datos almacenado en esa dirección y poder verlo con un programador de pics
añadiendo al comentario de Mauricio, prueba grabando datos solamente y te fijas en el .hex después intentas leer
-
La verdad nose como esq enrealidad se usa esas 2 funciones para leer y escribir en la memoria de programa del PIC, por eso esperaba q alguno de ustedes me lo dijiera o q me pudiera dar un ejemplo :?
PalitroqueZ, lo q sale en el hexa (xq lo veo desde el MPLAB) no puedo entenderlo porq salen varias cosas en assembler y pues no ntendo :?
Alguien sabra alguna forma de hacerlo ?? :? :?
salu2 8)