Reading EEPROM DATA
BCF STATUS, RP0 ; Bank 0
MOVLW CONFIG_ADDR ;
MOVWF EEADR ; Address to read
BSF STATUS, RP0 ; Bank 1
BSF EECON1, RD ; EE Read
BCF STATUS, RP0 ; Bank 0
MOVF EEDATA, W ; W = EEDATA
Writing EEPROM DATA
BSF STATUS, RP0 ; Bank 1
BCF INTCON, GIE ; Disable INTs.
BSF EECON1, WREN ; Enable Writes
; the following steps must be performed in the order shown without interuption
MOVLW 55h ;
MOVWF EECON2 ; Write 55h
MOVLW AAh ;
MOVWF EECON2 ; Write AAh
BSF EECON1,WR ; Set WR bit
; write begins
BCF EECON1, WREN ; Disable writes
BSF INTCON, GIE ; Enable INTs.
Verifing EEPROM DATA
BCF STATUS,RP0 ; Bank 0
: ; Any code
: ; can go here
MOVF EEDATA,W ; Must be in Bank 0
BSF STATUS,RP0 ; Bank 1
READ
BSF EECON1, RD ; YES, Read the value written
BCF STATUS, RP0 ; Bank 0
;
; Is the value written
; (in W reg) and
; read (in EEDATA)
; the same?
;
SUBWF EEDATA, W ;
BTFSS STATUS, Z ; Is difference 0?
GOTO WRITE_ERR ; NO, Write error