Cómo leer y escribir EEPROM en el microcontrolador PIC18, estoy usando el microcontrolador 18F4520 y estoy buscando un ejemplo de programa para leer y escribir EEPROM
****************************************** ** ************************************************* *** ********
Nombre de la función: EE_ readbyte
Función: Leer 1 byte de la EEPROM en el chip
Descripción: Read_AddrH : Para escribir Ingrese la dirección alta Read_Addr: Devuelve el valor almacenado en la dirección después de la ejecución de la función
********************** * *** ************************************************* **** ***********************
*/
uchar EE_ReadByte(uchar Read_AddrH, uchar Read_AddrH, uchar Read_AddrH, uchar Read_AddrH, uchar Read_AddrH) uchar Read_Addr)
{
EEADRH = Read_AddrH
EEADRH = Read_AddrH //Escribe dirección alta
EEADR = Read_Addr; //Escribe en la dirección baja
EECON1bits.EEPGD = 0; //Accede a la memoria EEPROM
EECON1bits.CFGS = 0; EEPROM o Área de programa
EECON1bits.RD = 1;
Devolver EEDATA;
}
/*
** **************************** ******************* ***** ********************************************** ****
Nombre de la función: EE_writebyte
Función: escribir 1 byte en la EEPROM del chip
Descripción: Write_AddrH: dirección alta a escribir; : dirección baja a escribir; Write_Byte: Byte a escribir
****************************** ************ ********************************** **** ************** *******************
*/
void EE_WriteByte (uchar Write_AddrH,uchar Write_Addr,uchar Write_Byte)
{
ClrWdt(); //alimenta al perro
while(EECON1bits.WR); p>
EEADRH = Write_AddrH;//Escribir dirección alta
EEADR = Write_Addr;//Escribir dirección baja
EEDATA = Write_Byte.
EECON1bits.EEPGD = 0; //Accede a la memoria EEPROM
EECON1bits.CFGS = 0; //Accede a la EEPROM o al área de programa
EECON1bits.WREN = 1 ; // Completamente borrable
INTCONbits.GIE = 1; // Activa las interrupciones
EECON1bits.WREN = 0 // Deshabilita el borrado
(EECON1bits.WR) // Espera a que se complete la escritura
{
;
}
}
/*
****************************************** *** ************************************************* **** ********
Nombre de función: EE_WriteArray
Función: Escribir datos de matriz en EEPROM
Descripción: AddrH: inicio de EEPROM dirección Byte alto, Dirección: dirección inicial de EEPROM byte bajo
WriteByte[]: datos de la matriz que se almacenarán
LenArray: longitud de la matriz que se almacenará
Ejemplo: Dirección de almacenamiento 0x0020---0x0029 Matriz de datos de almacenamiento[10]
****************************** * ************************************************* ** ******** *************
*/
void EE_WriteArray(uchar AddrH,uchar Addr,uchar WriteArray [] ,uchar LenArray)
{
uchar tempH, tempL,tempByte
uint i=0;
tempH = AddrH; ;
tempL = Dirección;
for(i=0;i { tempByte = WriteArray[ i] ; EE_WriteByte(tempH,tempL,tempByte); tempL++; } } / * **************************************** *** ************************************************* **** ******* Nombre de la función:EE_ReadArray Función: escribir datos de matriz en EEPROM Descripción: 10] ************************************************ ******** ******************************************* ********* */