TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: JorgitoFRyOle en 03 de Mayo de 2005, 11:06:00

Título: eeprom
Publicado por: JorgitoFRyOle en 03 de Mayo de 2005, 11:06:00
Buenas a tos:

A ver si alguien me puede ayudar con la eeprom. Tengo un par de dudas.

Utilizo para cargar el .hex (generado por el ccs) en mi placa el mplab icd2, lo cual me permite ver la eeprom interna del pic, una de mis dudas es: xq al principio de usar la eeprom en todas sus posiciones tiene el valor FF, son los valores iniciales de la eeprom?

Mi otra duda es como funciona la funcion write_eeprom del ccs, (he puesto el siguiente ejemplo para probar, write_eeprom(0x00,0x88)) y los valores de la eeprom no cambia, que es lo que hago mal? A que se debe esto?

Gracias por estar ahi y por vuestra ayuda. 1saludo
Título: RE: eeprom
Publicado por: Lager. en 03 de Mayo de 2005, 17:47:00
Que onda jorge,
prueba este ejemplo, es el que viene en el mismo CCs:
 
Codigo:

#include <16f877.h>
#FUSES HS,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP,NOWDT,NODEBUG
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_c6,rcv=PIN_c7,force_sw)
#include <input.c>
#rom 0x2100={1,2,3,4}
void main() {
   BYTE i, j, address, value;
   do {
      printf("

EEPROM:
");            
      for(i=0; i<=3; ++i) {                    
         for(j=0; j<=15; ++j) {
            printf( "%2x ", read_eeprom( i*16+j ) );
         }
         printf("
");
      }
      printf("
Direccion del valor a cambiar: ");
      address = gethex();
      printf("
Nuevo Valor: ");
      value = gethex();
      write_eeprom( address, value );

   } while (TRUE);
}

 


Los valores de inicio los puedes cambiar con el "# rom"
Salu2 pana :-)
Título: RE: eeprom
Publicado por: Flugplatz en 08 de Diciembre de 2005, 08:11:00
Hola, buenas...

no sabreis por casualidad como se cargan datos desde el codigo para la familia 18fxxx?

o sea, esto mismo

#rom 0x2100={1,2,3,4}

pero para los chips de la familia 18fxxx

Probablemente sea solo cambiando la direccion, pero no encuentro por ningun lado a partir de que direccion esta mapeada la EEPROM

un saludo

Mario
Título: RE: eeprom
Publicado por: mario_pastor en 08 de Diciembre de 2005, 12:03:00
Hola flugplatz, la EEPROM en la familia 18F inicia en 0XF00000. Yo programo en ASM y tengo algunos problemas al definir la EEPROM desde el programa, aquí te dejo el link. Si sabes de algo te agradecería me ayudaras con ello.
Título: RE: eeprom
Publicado por: Flugplatz en 08 de Diciembre de 2005, 13:25:00
Gracias tocayo ...

he seguido buscando ... y también lo he encontrado aqui:

#rom + CCS

Al principio usaba MPASM, pero solo para la familia 16fxxx ...

Desde que uso compiladores he perdido mucha práctica en el ensamblador ...

De todas formas, mirate la "18FXXX programing specification" ... según estaba buscando lo de la dirección de la EEPROM, he visto algo relativo a como se programa ...