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-14 20:15:02 +0100 (Tue, 14 Nov 2006) $ |
||
| 8 | * By: $LastChangedBy: johboh $ |
||
| 9 | * Revision: $Revision: 94 $ |
||
| 10 | ********************************************************************/ |
||
| 11 | #include <p18cxxx.h> |
||
| 12 | #include <EEaccess.h> |
||
| 13 | |||
| 14 | BYTE EERead(WORD addr) |
||
| 15 | { |
||
| 16 | EEADRH=(BYTE)(addr>>8); |
||
| 17 | EEADR=(BYTE)(addr & 0xFF); |
||
| 18 | EECON1bits.EEPGD=0; |
||
| 19 | EECON1bits.CFGS=0; |
||
| 20 | EECON1bits.RD=1; |
||
| 21 | return EEDATA; |
||
| 22 | } |
||
| 23 | |||
| 24 | |||
| 25 | void EEWrite(WORD addr,BYTE data) |
||
| 26 | { |
||
| 27 | PIR2bits.EEIF=0; |
||
| 28 | EEADRH=(BYTE)(addr>>8); |
||
| 29 | EEADR=(BYTE)(addr & 0xFF); |
||
| 30 | EEDATA=data; |
||
| 31 | EECON1bits.EEPGD=0; |
||
| 32 | EECON1bits.CFGS=0; |
||
| 33 | EECON1bits.WREN=1; |
||
| 34 | INTCONbits.GIE=0; |
||
| 35 | EECON2=0x55; |
||
| 36 | EECON2=0xAA; |
||
| 37 | EECON1bits.WR=1; |
||
| 38 | INTCONbits.GIE=1; |
||
| 39 | while(!PIR2bits.EEIF); |
||
| 40 | EECON1bits.WREN=0; |
||
| 41 | } |