Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

/*********************************************************************
 *
 *   Functions for reading and writing to EEPROM.
 *
 *********************************************************************
 * FileName:            $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/EEAccess.c $
 * Last changed:    $LastChangedDate: 2006-11-14 20:15:02 +0100 (Tue, 14 Nov 2006) $
 * By:          $LastChangedBy: johboh $
 * Revision:        $Revision: 94 $
 ********************************************************************/
#include <p18cxxx.h>
#include <EEaccess.h>

BYTE EERead(WORD addr)
{
    EEADRH=(BYTE)(addr>>8);
    EEADR=(BYTE)(addr & 0xFF);
    EECON1bits.EEPGD=0;
    EECON1bits.CFGS=0;
    EECON1bits.RD=1;
    return EEDATA;  
}


void EEWrite(WORD addr,BYTE data)
{
    PIR2bits.EEIF=0;
    EEADRH=(BYTE)(addr>>8);
    EEADR=(BYTE)(addr & 0xFF);
    EEDATA=data;
    EECON1bits.EEPGD=0;
    EECON1bits.CFGS=0;
    EECON1bits.WREN=1;
    INTCONbits.GIE=0;
    EECON2=0x55;
    EECON2=0xAA;
    EECON1bits.WR=1;
    INTCONbits.GIE=1;
    while(!PIR2bits.EEIF);
    EECON1bits.WREN=0;
}