Subversion Repositories HomeAutomation

Rev

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

Rev Author Line No. Line
94 johboh 1
/*********************************************************************
2
 *
3
 *   Functions for reading and writing to EEPROM.
4
 *
5
 *********************************************************************
6
 * FileName:            $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/EEAccess.c $
7
 * Last changed:    $LastChangedDate: 2006-11-20 21:31:03 +0100 (Mon, 20 Nov 2006) $
8
 * By:          $LastChangedBy: johboh $
9
 * Revision:        $Revision: 139 $
10
 ********************************************************************/
11
#include <p18cxxx.h>
12
#include <EEaccess.h>
13
 
139 johboh 14
/*
15
*   Function: EERead
16
*
17
*   Input:  WORD address to read from.
18
*   Output: Byte read.
19
*   Pre-conditions: none
20
*   Affects: none.
21
*   Depends: none.
22
*/
94 johboh 23
BYTE EERead(WORD addr)
24
{
25
    EEADRH=(BYTE)(addr>>8);
26
    EEADR=(BYTE)(addr & 0xFF);
27
    EECON1bits.EEPGD=0;
28
    EECON1bits.CFGS=0;
29
    EECON1bits.RD=1;
30
    return EEDATA; 
31
}
32
 
33
 
139 johboh 34
/*
35
*   Function: EEWrite
36
*
37
*   Input:  WORD address to write to and BYTE data to write.
38
*   Output: none.
39
*   Pre-conditions: none
40
*   Affects: none.
41
*   Depends: none.
42
*/
94 johboh 43
void EEWrite(WORD addr,BYTE data)
44
{
45
    PIR2bits.EEIF=0;
46
    EEADRH=(BYTE)(addr>>8);
47
    EEADR=(BYTE)(addr & 0xFF);
48
    EEDATA=data;
49
    EECON1bits.EEPGD=0;
50
    EECON1bits.CFGS=0;
51
    EECON1bits.WREN=1;
52
    INTCONbits.GIE=0;
53
    EECON2=0x55;
54
    EECON2=0xAA;
55
    EECON1bits.WR=1;
56
    INTCONbits.GIE=1;
57
    while(!PIR2bits.EEIF);
58
    EECON1bits.WREN=0;
59
}